容器面板和JScrollPane

时间:2013-07-02 17:45:52

标签: java swing layout-manager absolutelayout

我正在研究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);

感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

midPanel.setLayout(null);

您应始终使用布局管理器,绝不会因任何原因删除布局,除非您需要使用绝对布局( null 布局)。

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

请参阅Using Layout Managers上的本教程。