我有一个名为Jpanel
的{{1}}和另一个名为mainPanel
的类,其扩展名为MyPanel
。我想将JPanel
添加到MyPanel
。我做了这个代码而没有得到任何结果。
这是我的主要课程,其中包含mainPanel
:
mainPanel
这是我之前添加到import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class Main extends JFrame {
private JPanel contentPane;
private final JPanel mainPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main frame = new Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Main() {
inItGUI();
}
private void inItGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 662, 417);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
mainPanel.setBounds(25, 11, 611, 341);
contentPane.add(mainPanel);
mainPanel.setLayout(null);
mainPanel.add(new MyPanel());// **Here i added MyPanel**
mainPanel.revalidate();
repaint();
}
}
的{{1}}课程:
MyPanel
答案 0 :(得分:4)
欢迎来到null
布局管理员
如果删除布局管理器,则会删除组件自动调整大小和位置的任何可能性。
基本上发生的事情是MyPanel
被添加到mainPanel
和位置0x0,大小为0x0,所以没有任何内容开始显示。
真正的解决方案是使用appropriate layout manager
不要欺骗自己。在现代计算机系统领域中管理组件的位置和大小,尤其是组件之间的关系是复杂的。您必须能够根据当前系统的字体,DPI,方向等来考虑每个组件的呈现方式,然后考虑如何影响共享同一容器的其他组件......您还必须监视附加到的组件层次结构中的更改...
这是布局管理员提供的工作...... Swing是围绕布局管理器的使用而设计的,你应该有一个非常好的理由忽略它们......恕我直言