我想将JTable添加到布局为空的JPanel中。JPanel包含其他组件。我必须在适当的位置添加JTable。
当前回答
JPanel panel = new JPanel();
JTable table = new JTable(rowData, colData);
JScrollPane scrollPane = new JScrollPane(table);
panel.add(scrollPane, BorderLayout.CENTER);
panel.setSize(800, 150);
panel.add(table);
panel.setLocationRelativeTo(null);
panel.setVisible(true);
希望这能有所帮助。
其他回答
JTable应该添加到JScrollPane中,而JScrollPane实际上应该添加到JPanel中。
JPanel应该有一些布局管理器。
如果你不关心组件大小的精度,你可以使用纯BorderLayout,并将其与FlowLayout和GridLayout结合起来。如果你需要精度-使用jgoodies FormLayout。
FormLayout是非常棘手的一个,但是您可以使用WindowBuilder(嵌入到Eclipse中)并查看它生成的代码。这可能看起来很复杂,但这只是一种无知。
祝你好运。
JPanel panel = new JPanel();
JTable table = new JTable(rowData, colData);
JScrollPane scrollPane = new JScrollPane(table);
panel.add(scrollPane, BorderLayout.CENTER);
panel.setSize(800, 150);
panel.add(table);
panel.setLocationRelativeTo(null);
panel.setVisible(true);
希望这能有所帮助。
正如我所记得的,null布局意味着一个绝对位置,因此计算JTable左上角位置的X点将非常困难。但如果你只是想一个接一个地拥有所有面板组件,你可以使用FlowLayout()管理器作为
JPanel panel=new JPanel(new FlowLayout());
panel.add(new aComponent());
panel.add(new bComponent());
panel.add(new JTable());
或者如果你需要填充面板,你应该使用GridLayout()作为…
int x=2,y=2;
JPanel panel=new JPanel(new GridLayout(y,x));
panel.add(new aComponent());
panel.add(new bComponent());
panel.add(new JTable());
祝你好运
您可以使用以下代码。将JTable添加到JPanel。
JPanel panel = new JPanel();
this.setContentPane(panel);
panel.setLayout(null);
String data[][] = {{"1.", "ABC"}, {"2.", "DEF"}, {"3.", "GHI" }};
String col[] = {"Sr. No", "Name"};
JTable table = new JTable(data,col);
table.setBounds(100, 100, 100, 80);
panel.add(table);
setVisible(true);
setSize(300,300);
当一个组件有一个“null”布局时,你必须自己管理布局,这意味着你必须为组件的子组件计算尺寸和位置,以决定它们被绘制在哪里。除非绝对必要,否则会很乏味。
如果你真的想要那种细粒度的控制,也许可以先试试GridBagLayout,然后再去处理UI的排列。