我正在研究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);
感谢您的帮助。
答案 0 :(得分:8)
midPanel.setLayout(null);
您应始终使用布局管理器,绝不会因任何原因删除布局,除非您需要使用绝对布局( null 布局)。
问题在于绝对布局,每次添加组件时都必须通过component.setBounds(x,y,width,height)
指定面板内部组件的位置,否则它将不可见。
请参阅Using Layout Managers上的本教程。