0

我正在研究 GUI,我是一名业余程序员。我对这段代码有疑问。我看不到框架上的任何东西。

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1366, 768);
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

Container midPanel = new JPanel();
midPanel.setLayout(null);
Dimension preferredSize = new Dimension(700, 700);
midPanel.setPreferredSize(preferredSize);

            .....

Container k1 = new JPanel();
k1.setSize(50, 700);
k1.setLocation(0, 0);
k1.setLayout(new GridLayout(rowNum, 1));

k1.setVisible(true);

midPanel.add(k1);

            .......

Dimension jspD = new Dimension(500,500); 
JScrollPane jsp = new JScrollPane(midPanel);
jsp.setPreferredSize(jspD);
jsp.setLocation(0, 0);
jsp.setVisible(true);

contentPane.add(jsp);

我会很感激你的帮助。

4

1 回答 1

8
midPanel.setLayout(null);

您应该始终使用 布局管理器,永远不要出于任何原因删除布局,除非您有使用绝对布局(布局)所需的分配。

问题在于绝对布局,component.setBounds(x,y,width,height)每次添加组件时都必须指定组件在面板内的位置,否则将不可见。

请参阅有关使用布局管理器的本教程。

于 2013-07-02T17:52:43.057 回答