我正在学习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);
}
为什么我的组件位于面板下?
对不起,这是我的代码
最佳答案
contentPane使用BorderLayout作为其默认布局。
当您将组件添加到BorderLayout容器而不指定位置时,将添加BorderLayout.CENTER。
然后,它将掩盖以前添加到同一位置的所有其他组件。
解:
阅读并尝试使用其他布局管理器。检查this tutorial。
不要setBounds或使用空布局。