JFrame上元素的对齐方式

时间:2013-08-26 06:17:48

标签: java swing

这是我的代码摘录

 JButton browse,upload;
 JPanel panel;
 JLabel username,path;

 final JTextField  usernameText,pathText;
 final JTextArea statusText;

  InputWindow()
  {
  username = new JLabel();
  username.setText("Username:");
  usernameText = new JTextField(15);

  startDate = new JLabel();
  startDate.setText("Start Date :");
  startDateText = new JPasswordField(15);

  path = new JLabel();
  path.setText("File Path :");
  pathText = new JPasswordField(15);

  browse=new JButton("Browse..");
  upload=new JButton("Upload..");

  statusText = new JTextArea(35, 35);
}

如何将其添加到JFrameJPanel以便按以下方式对齐

  1. 第1行--->用户名和用户名文字
  2. 第2行---> startDate和startDateText
  3. 第3行---> path,pathText,浏览和上传
  4. 第4行--->状态文本
  5. 我总是把时间与元素对齐。请指南。

1 个答案:

答案 0 :(得分:1)

不是最好的方式,但最容易理解的方式!

将您想要的所有内容连续放在一个JTable中,例如:

JPanel row1 = new JPanel();

row1.add(username);
row1.add(usernameText);
...

等等!这背后的原因是,如果你把它们放在JPanel上,它就更容易放在网格上。如果您已经这样做,请为您使用GridLayout JFrame。

JFrame frame = new JFrame(new GridLayout(4, 1));

" 4"是行和" 1"是专栏!现在您只需将JPanel添加到JFrame,例如:

frame.add(row1);
frame.add(row2);

请记住,这不是最佳解决方案!还有一些方法,你不需要那么多的面板。例如,GroupLayout将是最好的事情。如果您想查看所有布局,可以执行here。我在这里解释了,因为我认为这是最容易理解的方式。