簡體   English   中英

Java Swing paint()無法正常工作

[英]Java Swing paint() not working

我寫了一個簡單的Swing Frame:

public class super_paint extends JFrame{
private JButton jt;
public super_paint()
{
    jt=new JButton("Hello");
    jt.setSize(20,10);

    Container container=getContentPane();
    this.add(jt);

}
@Override
public void paint(Graphics g) {
    // TODO Auto-generated method stub
    super.paint(g);
    g.setColor(Color.red);
    g.draw3DRect(10,10,100,100,true);
    g.setColor(Color.green);
    g.fillOval(50,10,60,60);
     g.drawString("A myFrame object", 10, 50 );
}

以下是測試類:

public class super_paint_Test {
public static void main(String[] args)
{
    JFrame t=new super_paint();
    t.setSize(300,300);
    t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    t.setVisible(true);
}    

}

顯示Jframe時,paint()所做的操作(例如drawRect())不會顯示。 但是,當我更改jframe的大小時,將顯示它。

代碼段有什么問題?

問題在於,為JButton完成的繪制會“覆蓋”您在paint()方法中已經完成的自定義繪制。

我將創建另一個自定義JComponent子類,並將此繪畫功能放置在那里。 也最好使用paintComponent

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM