哆啦的时光机
首先,您应该认真考虑其他布局管理器,例如BorderLayoutManager(新的JPanel(新的BorderLayout()))是一个好的开始。在设计对话框时,请记住您可以并且应该嵌套布局:一个JPanel在另一个JPanel中(例如BorderLayout中的GridLayout)。请注意:“ 正确 ”对话框应正确调整大小,以便在用户调整框架大小时,您希望自动扩展信息对象(如表格),而不显示大面积的JPanel背景。这是NullLayout无法实现的。但是有可能出现这种情况 - 在这个大世界的某个地方 - NullLayout就是这样。所以这是一个例子:import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;public class JTableInNullLayout{ public static void main(String[] argv) throws Exception { DefaultTableModel model = new DefaultTableModel( new String[][] { { "a", "123"} , {"b", "456"} }, new String[] { "name", "value" } ); JTable t = new JTable(model); JPanel panel = new JPanel(null); JScrollPane scroll = new JScrollPane(t); scroll.setBounds( 0, 20, 150, 100 ); // x, y, width, height panel.add(scroll); JFrame frame = new JFrame(); frame.add(panel); frame.setPreferredSize( new Dimension(200,200)); frame.pack(); frame.setVisible(true); }}