JAVA SWING 布局实在搞不来

iamChirs 2014-11-27 11:45:31
我在写一个数据库运维的平台,因为讨厌HTML,所以打算用SWING来做。 以前也没做过开发,所以SWING的布局现在碰到几个问题。

1)Jtable 取数据的问题

整体布局采用的是BorderLayout(), 左边显示数据库的表(采用的是TREE),上面当然是toolbar和menu,中间是toolbar + SQL输入框 + JTABLE(使用jsplitpan 来结合), 最下面是SQL运行结果(采用的也是JTABLE).

现在碰到的问题是,因为JTABLE默认没有任何数据,所以在初始化的时候JTABLE会被SQL输入框给覆盖,这个其实是正常的,表示没有数据就不要显示JTABLE。 但是当我运行SQL后,把SQL的结果放到JTABLE,然后frame.validate()或者repaint() 仍然不能显示出JTABLE。

我看网上有人是通过remove,然后把中间层重画,然后再validate(); 目前我也采用的是这个方法,因为JTABLE数据如果没有,就会被中间的SQL框覆盖,所以最下边的SQL运行结果框也有同样的问题,不能显示。

目前重画的代码为(我真的不想用这个方式,我想把结果放到JTABLE里后,就能显示JTABLE):


AdminPlatForm.sqlresult = new JTable(rows, columnHeads);
AdminPlatForm.sqlresult.setRowSelectionAllowed(false);
// SetTableCellAutoSize.fitTableColumns(AdminPlatForm.sqlresult);
AdminPlatForm.sqlresult.setCellSelectionEnabled(false);
AdminPlatForm.sqlresult.setRowHeight(25);
SetTableCellDiffColor.makeFace(AdminPlatForm.sqlresult);
AdminPlatForm.scroller = new JScrollPane(AdminPlatForm.sqlresult);
AdminPlatForm.scroller
.setVerticalScrollBarPolicy(AdminPlatForm.scroller.VERTICAL_SCROLLBAR_ALWAYS);
AdminPlatForm.scroller.setVisible(true);
JSplitPane center_bottom = new JSplitPane(
JSplitPane.VERTICAL_SPLIT, true, AdminPlatForm.center,
AdminPlatForm.scroller);
center_bottom.setDividerLocation(300);
center_bottom.setAutoscrolls(true);
center_bottom.setDividerSize(2);
center_bottom.setBounds(10, 10, 10, 10);
AdminPlatForm.c.remove(2);
AdminPlatForm.c.add(center_bottom, new BorderLayout().CENTER);
AdminPlatForm.c.validate();

另外remove(2)的意义是什么, 因为我remove(3)就不行,但是默认布局是上,下,左,中,还请指点。

我想达到的目的其实就是,中间的SQL运行数据的JTABLE和最下边的结果的JTABLE在不重画的情况下能够自动显示,当然如果采用重画能达到要求也行。



...全文
430 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamChirs 2014-11-27
  • 打赏
  • 举报
回复
谁知道mysql默认的workbench最下面的OUTPUT怎么实现的,是用JTABLE还是用什么。
iamChirs 2014-11-27
  • 打赏
  • 举报
回复
我现在想达到最基本的要求就是,最下边的结果JTABLE要正常显示出来,即使没有结果,也不要让中间层覆盖了,我想达到下面这种模型:
iamChirs 2014-11-27
  • 打赏
  • 举报
回复
以下是有结果的图表:

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧