java - 将多个面板添加到 JFrame

标签 java swing jframe jpanel

我了解一些 java,但我对任何类型的 GUI 开发都是新手。我所做的大部分事情都是通过终端运行的小程序。

无论哪种情况,当我尝试把脚弄湿时,我发现自己陷入了以下代码:

public class MyGui {

   public static void main(String[] args) {
      JFrame frame = new JFrame("My Frame");
      JPanel leftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
      JPanel centerPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));

      JTextArea userField = new JTextArea("User:");
      userField.setEditable(false);

      JTextArea user = new JTextArea("myuser");
      user.setEditable(true);

      leftPanel.add(userField);
      centerPanel.add(user);

      frame.getContentPane().add(leftPanel);
      frame.getContentPane().add(centerPanel);
      frame.setVisible(true);
      frame.setSize(500, 500);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

我基本上想要一个表格窗口,其中字段位于左侧,其值位于右侧。如何做到这一点?

我当前的输出只是窗口中央的 myuser

最佳答案

您不需要两个面板。只需一个 GridLayout 就足够了:

public static void main(String [] args) {
        JFrame frame = new JFrame("My Frame");
          JPanel panel = new JPanel(new GridLayout(1,2)); // split the panel in 1 rows and 2 cols


          JTextArea userField = new JTextArea("User:");
          userField.setEditable(false);

          JTextArea user = new JTextArea("myuser");
          user.setEditable(true);

          panel.add(userField);
          panel.add(user);

          frame.getContentPane().add(panel);

          frame.setVisible(true);
          frame.setSize(500, 500);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

关于java - 将多个面板添加到 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551162/

相关文章:

java - Eclipse:类路径引用的存档不存在

java - maven-war-plugin 中过滤不排除目录

java - SAXParser 不从 URL 检索 XML 数据

java - 动态显示和隐藏 JFrame 装饰

java - 在 `repaint()` 之后,在 JFrame 中心绘制圆圈不会更新

java - 无法在单个框架中显示多个按钮

java - JFrame repaint() 和 revalidate() 仅在 Mac 操作系统上调整窗口大小时更新

java - 如何在java中获取上次修改时间和当前系统日期时间差

java - 在GUI中删除表中的数据

java - JComboBox 可在 Geocoder Google API 中查找