1

这是我的代码摘录

 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 行 ---> 路径、路径文本、浏览和上传
  4. 第 4 行 ---> 状态文本

我总是有时间对齐元素。请指导。

4

1 回答 1

1

不是最好的方法,而是最容易理解的方法!

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

JPanel row1 = new JPanel();

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

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

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

“4”是行,“1”是列!现在您只需将 JPanel 添加到 JFrame 中,例如:

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

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

于 2013-08-26T06:33:31.750 回答