我想将JTable添加到布局为空的JPanel中。JPanel包含其他组件。我必须在适当的位置添加JTable。
当前回答
JFrame frame = new JFrame("Sample Frame");
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
DefaultTableModel dfm = new DefaultTableModel(data, columnNames);
JTable table = new JTable(dfm);
JScrollPane scrollPane = new JScrollPane(table);
panel.add(scrollPane);
frame.add(panel);
frame.setVisible(true);
表模型取决于您的需求
其他回答
不要使用空布局。学习使用LayoutManagers:
http://download.oracle.com/javase/tutorial/uiswing/layout/using.html
LayoutManagers允许您正确地处理窗口大小调整或动态组件计数。它们一开始可能看起来很吓人,但它们值得你努力去学习。
正如我所记得的,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应该添加到JScrollPane中,而JScrollPane实际上应该添加到JPanel中。
JPanel应该有一些布局管理器。
如果你不关心组件大小的精度,你可以使用纯BorderLayout,并将其与FlowLayout和GridLayout结合起来。如果你需要精度-使用jgoodies FormLayout。
FormLayout是非常棘手的一个,但是您可以使用WindowBuilder(嵌入到Eclipse中)并查看它生成的代码。这可能看起来很复杂,但这只是一种无知。
祝你好运。
您可以使用以下代码。将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);
如果你使用空布局管理器,你总是需要设置一个组件的边界。 这就是你的问题所在。
你应该按照每个人的建议去做,使用一些布局管理器,它们可以节省时间。 去@jzd的帖子里看看教程吧。
享受吧,博罗。
推荐文章
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何找到Java堆大小和内存使用(Linux)?
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系
- buildSessionFactory()配置方法在Hibernate中已弃用?
- Spring MVC -如何获得所有的请求参数在一个地图在Spring控制器?
- 如何在Java中按两个字段排序?
- 以编程方式设置TextView的布局权重
- 文件之间的差异。路径中的分隔符和斜杠
- 在方法参数中使用NotNull注释
- Spring MVC中处理可选参数的@RequestParam
- Tomcat:如何查找正在运行的Tomcat版本?
- “java”、“javaw”和“javaws”之间有什么区别?
- 将Date对象转换为日历对象
- 在Java中保存最后N个元素的大小有限的队列