为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MM们 2019-05-20 16:27:09
我想添加JTable到JPanel其布局中null。 JPanel包含其他组件。我必须添加JTable适当的位置。
查看完整描述

6 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

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

祝好运


查看完整回答
反对 回复 2019-05-20
?
千万里不及你

TA贡献1784条经验 获得超9个赞

如果使用null布局管理器,则始终需要设置组件的边界。这就是你的问题。

您应该按照每个人的建议去做,然后使用一些布局经理相信他们可以节省时间。去查看@jzd帖子中的教程。

享受,博罗。


查看完整回答
反对 回复 2019-05-20
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

JTable应该添加到JScrollPane实际应该添加到的内容中JPanel

JPanel应该有一些布局管理器。

如果您不关心组件尺寸的精度,您可以使用纯净BorderLayout并将其与FlowLayout和组合GridLayout。如果你需要精确 - 使用jgoodies FormLayout

FormLayout是非常棘手的,但你可以玩一点WindowBuilder(嵌入到Eclipse中)并查看它生成的代码。它可能看起来很复杂,但这只是一种无知。

祝好运。


查看完整回答
反对 回复 2019-05-20
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

首先,您应该认真考虑其他布局管理器,例如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);

  }

}


查看完整回答
反对 回复 2019-05-20
  • 6 回答
  • 0 关注
  • 1007 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信