如何在JPanel中添加带有null布局的JTable?

我想添加JTableJPanel其布局中null。 JPanel包含其他组件。我必须添加JTable适当的位置。



MM们
浏览 1008回答 6
6回答

慕的地10843

我记得,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());祝好运

千万里不及你

如果使用null布局管理器,则始终需要设置组件的边界。这就是你的问题。您应该按照每个人的建议去做,然后使用一些布局经理相信他们可以节省时间。去查看@jzd帖子中的教程。享受,博罗。

一只斗牛犬

JTable应该添加到JScrollPane实际应该添加到的内容中JPanel。本JPanel应该有一些布局管理器。如果您不关心组件尺寸的精度,您可以使用纯净BorderLayout并将其与FlowLayout和组合GridLayout。如果你需要精确 - 使用jgoodies FormLayout。这FormLayout是非常棘手的,但你可以玩一点WindowBuilder(嵌入到Eclipse中)并查看它生成的代码。它可能看起来很复杂,但这只是一种无知。祝好运。

哆啦的时光机

首先,您应该认真考虑其他布局管理器,例如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);  }}
打开App,查看更多内容
随时随地看视频慕课网APP