【问题标题】:How to Set Bounds of JTable while Set Layout is Null?设置布局为空时如何设置JTable的边界?
【发布时间】:2014-05-02 22:24:48
【问题描述】:

在我的

public UI(){

I have JTextField,JButtons and labels
I have also setLayout(null);

}

现在我正在尝试创建一个 JTable

JTable table = new JTable(data, headers);

但在我取出 setLayout 之前它不会显示

对于我拥有的所有按钮、文本框和标签setBounds();

setLayout 为 Null 时如何显示 JTable?

【问题讨论】:

  • 请检查LayoutManager
  • 您是否将其添加到 JScrollPane 中?
  • @MadProgrammer 是的con.add(new JScrollPane(table), BorderLayout.SOUTH);
  • 永远不要对组件进行任何手动调整大小/定位 - 这是 LayoutManager 的专属职责。所以这个问题没有实际意义......

标签: java swing layout jtable null-layout-manager


【解决方案1】:

不要使用null 布局,而是使用LayoutManagers。 Java 为您创建了令人惊叹的布局,您只需使用它,让布局完成您的工作,而不是费力地计算位置和大小。

这是我的回答,但如果您坚持使用它,只需调用 setBounds(x,y,width,height) 方法获取 JTable。 但同样,不要使用绝对定位(null Layout)。

//....
JScrollPane scrol = new JScrollPane(table);
scrol.setBounds(table.getBounds());
//....

【讨论】:

  • @mKorbel:是的,你是对的,只有将标题添加到JScrollPane 并设置 scrollPane 的边界后才会显示标题。
  • 我试过这样做,但仍然没有显示 table.setBounds(10,10,100,100);
  • @Shiv Chand 以及在此之前解决您的帖子中的冲突1. How can I display the JTable while the setLayout is Null? v.s. 2. con.add(new JScrollPane(table), BorderLayout.SOUTH);,因为只有一种方式可以显示您的 JTable,请注意 BorderLayout.SOUTH 的 JTable 不能为空,否则会创建 10 x 10 像素的矩形
  • @ShivChand:听 mLorbel 的建议,我编辑了帖子。
  • @Caffè 不是,请使用 setPreferredScrollableViewportSize 修改此处发布的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 2014-05-22
  • 2021-04-06
  • 2014-12-11
  • 1970-01-01
相关资源
最近更新 更多