我有JFrame
,並且我用paintComponent()
方法添加了我的JPanel
類。例如,我繪製了紅色的矩形,並且在做了一些動作之後,我想繪製出綠色的橢圓形。我試圖在JPanel
中撥打repaint()
方法,但沒有任何反應。請幫幫我!JPanel重繪問題
UPDATE:這只是示例代碼
public class Test extends JFrame implements ActionListener{
private Container content;
private MyPanel em;
private JButton btn;
Test() {
super("test");
content = getContentPane();
em = new MyPanel();
conent.add(em);
btn = new JButton("Draw");
btn.addActionListener(this);
content.add(btn);
}
public void actionPerformed(ActionEvent e) {
em.setShape("oval");
}
public class MyPanel extends JPanel {
private String shape = "rectangle";
MyPanel()
{
}
setShape(String shape){
this.shape = shape;
repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(shape == "rectanle")
g.drawRectangle(100,25,100,200);
}
else if(shape == "oval"){
g.drawOval(100, 25, 175, 175);
}
}
您的問題中沒有足夠的信息開始回答。您需要發佈代碼(儘可能少的代碼來重現問題),以及您期望看到什麼行爲,實際看到的內容以及您認爲問題可能存在的細節。 – 2010-11-05 19:55:46
您是否使用-DPleaseRepaintMyPanelPromptly標誌運行程序? – 2010-11-05 19:57:24
這是一個笑話順便說一句。 – 2010-11-05 19:58:21