swing Java如何在面板上添加组件?
我正在学习java,我从头开始:)
我想在面板上画线,但我做不到
这是我的密码:
public class Window extends JFrame{
public Window(){
setSize(600,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Container pow = getContentPane();
Component k = new Test();
pow.add(k);
Panel p1 = new Panel();
p1.setBounds(40, 40, 520, 520);
p1.setBackground(Color.white);
pow.add(p1);
}
}
和面板类
import java.awt.*;
import javax.swing.*;
public class Test extends JPanel{
public void paintComponent(Graphics g){
g.drawLine(30, 50, 30, 550);
g.drawLine(30, 550, 550, 550);
g.drawLine(30, 50, 20, 60);
g.drawLine(30, 50, 40, 60);
g.drawLine(550, 550, 540, 540);
g.drawLine(550, 550, 540, 560);
}
}
和主要
public static void main(String[] args){
Window mo = new Window();
mo.setVisible(true);
}
为什么我的组件在面板下? 对不起,这是我的密码
# 1 楼答案
Panel
和Component
是AWT,JPanel
和JComponent
是Swing。AWT不使用paintComponent
,而是使用paint
。将AWT类切换到Swing类,或者将paintComponent
切换到paint
这样可能会起作用这就是为什么向重写方法中添加
@Override
是个好主意,因为它告诉您paintComponent
不是Component
的方法此外,还将零部件和面板添加到同一容器中。将组件放入面板中
# 2 楼答案
解决方案: