我正在使用JButton的Action偵聽器繪製不同的形狀。它工作正常,但如何保持面板上以前繪製的形狀?因爲當另一個按鈕按下以前的形狀已經消失。顯示JPanel上的所有繪製形狀
jButton1.setText("Button1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Button2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
s = evt.getActionCommand();
repaint();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
s = evt.getActionCommand();
repaint();
}
.......和方法的paintComponent是
protected void paintComponent(Graphics g) {
super.paintComponent(g);
System.out.println("====>>> " + s);
switch (s) {
case "Button1":
g.drawRoundRect(20,20,40,40,100,200);
break;
case "Button2":
g.drawRect(0, 0, 200, 200);
break;
default:
g.drawOval(40, 40, 100, 100);
這裏的String包含按下按鈕字幕。
基本問題是,在每個繪畫循環中,您需要將圖形恢復到您需要的狀態。也就是說,您將需要重新繪製您之前繪製(並希望保留)的任何東西 – MadProgrammer 2013-04-30 07:38:30