如何将文本字段和标签放在7x3的网格中?

安德烈

网格中的第一列总是正确显示,然后其余部分开始替换其他单元格。此外,边框布局似乎没有起作用。我不知道问题是什么。它的顶部应有标题,中间应有7x3的网格,底部应有按钮。请帮忙!谢谢!

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class GUI extends JFrame{

    private JPanel mainPanel,titlePanel, fieldPanel, buttonPanel;

    private JLabel title, teams, totalP, wlt;

    private JTextField team1, team2, team3, team4, team5, team6, total1, total2, total3, total4, total5, total6, wlt1, wlt2, wlt3, wlt4, wlt5, wlt6;

    private JButton read, calc, champWin, earthCW, exit;

    final private int WINDOW_HEIGHT = 400;
    final private int WINDOW_WIDTH = 900;

    public GUI(){

        buildtitlePanel();
        buildfieldPanel();
        buildbuttonPanel();
        buildmainPanel();

        setTitle("Desert Soccer League");
        setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    private void buildmainPanel() {

        mainPanel = new JPanel();

        mainPanel.setLayout(new BorderLayout());

        mainPanel.add(titlePanel, BorderLayout.NORTH);
        mainPanel.add(fieldPanel, BorderLayout.CENTER);
        mainPanel.add(buttonPanel, BorderLayout.SOUTH);

        add(mainPanel);

    }

    private void buildtitlePanel() {

        titlePanel = new JPanel();

        title = new JLabel();

        title.setText("2014 Desert Soccer League Totals");

        titlePanel.add(title);



    }

    private void buildfieldPanel() {

        fieldPanel = new JPanel();

        fieldPanel.setLayout(new GridLayout(7, 3));

        teams = new JLabel();
        teams.setText("Teams");

        totalP = new JLabel();
        totalP.setText("Total Points");

        wlt = new JLabel();
        wlt.setText("Win-Loss-Tie");

        team1 = new JTextField(10);
        team2 = new JTextField(10);
        team3 = new JTextField(10);
        team4 = new JTextField(10);
        team5 = new JTextField(10);
        team6 = new JTextField(10);

        total1 = new JTextField(10);
        total2 = new JTextField(10);
        total3 = new JTextField(10);
        total4 = new JTextField(10);
        total5 = new JTextField(10);
        total6 = new JTextField(10);

        wlt1 = new JTextField(10);
        wlt2 = new JTextField(10);
        wlt3 = new JTextField(10);
        wlt4 = new JTextField(10);
        wlt5 = new JTextField(10);
        wlt6 = new JTextField(10);

        team1.setEditable(false);
        team2.setEditable(false);
        team3.setEditable(false);
        team4.setEditable(false);
        team5.setEditable(false);
        team6.setEditable(false);

        total1.setEditable(false);
        total2.setEditable(false);
        total3.setEditable(false);
        total4.setEditable(false);
        total5.setEditable(false);
        total6.setEditable(false);

        wlt1.setEditable(false);
        wlt2.setEditable(false);
        wlt3.setEditable(false);
        wlt4.setEditable(false);
        wlt5.setEditable(false);
        wlt6.setEditable(false);

        fieldPanel.add(teams);
        fieldPanel.add(team1);
        fieldPanel.add(team2);
        fieldPanel.add(team3);
        fieldPanel.add(team4);
        fieldPanel.add(team5);
        fieldPanel.add(team6);

        fieldPanel.add(totalP);
        fieldPanel.add(total1);
        fieldPanel.add(total2);
        fieldPanel.add(total3);
        fieldPanel.add(total4);
        fieldPanel.add(total5);
        fieldPanel.add(total6);

        fieldPanel.add(wlt);
        fieldPanel.add(wlt1);
        fieldPanel.add(wlt2);
        fieldPanel.add(wlt3);
        fieldPanel.add(wlt4);
        fieldPanel.add(wlt5);
        fieldPanel.add(wlt6);



    }

    private void buildbuttonPanel() {

        buttonPanel = new JPanel();

        buttonPanel.setLayout(new GridLayout(1, 5));

        read = new JButton();
        calc = new JButton();
        champWin = new JButton();
        earthCW = new JButton();
        exit = new JButton();

        read.setText("Read Input File");
        read.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                System.exit(0);

            }
        });

        calc.setText("Calculate Points");
        calc.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                System.exit(0);

            }
        });

        champWin.setText("Championship Winner");
        champWin.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                System.exit(0);

            }
        });

        earthCW.setText("Earth Cup Winner");
        earthCW.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                System.exit(0);

            }
        });

        exit.setText("Exit");
        exit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                System.exit(0);

            }
        });

        buttonPanel.add(read);
        buttonPanel.add(calc);
        buttonPanel.add(champWin);
        buttonPanel.add(earthCW);
        buttonPanel.add(exit);



    }


}
卡米克尔
    mainPanel = new JPanel();

    mainPanel.add(titlePanel, BorderLayout.NORTH);
    mainPanel.add(fieldPanel, BorderLayout.CENTER);
    mainPanel.add(buttonPanel, BorderLayout.SOUTH);

默认情况下,aJPanel使用FlowLayout如果要使用BorderLayout,则需要在面板上设置布局:

    mainPanel = new JPanel( new BorderLayout() );

GridLayout首先填充行,因此代码应为:

fieldPanel.add(teams);
fieldPanel.add(totalP);
fieldPanel.add(wlt);

fieldPanel.add(team1);
fieldPanel.add(total1);
fieldPanel.add(wlt1);
...

还请注意,在您的代码中您要添加总数吗?两次(不做任何事情),而不是团队?领域。

指定网格的另一种方法是只使用:

fieldPanel.setLayout(new GridLayout(0, 3));

这告诉网格向每行添加3个组件,然后移至下一行。这样,您不必担心确切的行数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将p标签中的文本回调到输入文本字段?

来自分类Dev

如何将两个带有边距的文本字段放在一行中?

来自分类Dev

如何将文本字段的值传递给 Swift3 中的按钮单击函数?

来自分类Dev

如何将validation_errors()放在文本字段的右侧?

来自分类Dev

如何将文本字段的数据显示在表视图单元格的标签上?

来自分类Dev

如何将文本字段的QML文本转换为float和int

来自分类Dev

将图像放在文本字段内

来自分类Dev

将图像放在文本字段内

来自分类常见问题

如何将焦点更改为具有多个文本字段的ListView中的特定字段

来自分类Dev

在Excel中-如何将文本字段与日期字段连接

来自分类Dev

如何将焦点更改为具有多个文本字段的ListView中的特定字段

来自分类Dev

如何将文本变量分配给 Visio 2013 中的文本字段?

来自分类Dev

如何将“select”下拉列表中的文本值设置为“input”文本字段?

来自分类Dev

如何正确连接 SQLite 与 JavaFX 中的文本字段和标签?

来自分类Dev

如何将文本字段中的值添加到 eclipse 中的 jcombobox

来自分类Dev

如何将静态弹出框用于文本字段?

来自分类Dev

如何将段落与文本字段对齐

来自分类Dev

如何将Child追加到文本字段?

来自分类Dev

如何将验证文本字段设置为包?

来自分类Dev

如何将文本放在div标签下面?

来自分类Dev

如何将动态html添加到jQuery对话框的文本字段中?

来自分类Dev

如何将颜色选择器功能集成到动态文本字段中

来自分类Dev

页面加载后,如何将值加载到输入文本字段中?

来自分类Dev

如何将文本字段更改通知合并到textFieldDidEndEditing中

来自分类Dev

如何将文本字段更改通知合并到textFieldDidEndEditing中

来自分类Dev

如何将颜色选择器功能集成到动态文本字段中

来自分类Dev

如何将多个getString组合到一个文本字段中

来自分类Dev

如何将动态html添加到jQuery对话框的文本字段中?

来自分类Dev

在 Xcode (Mac) 中,如何将文本字段更新为 WebView URL (Cocoa)

Related 相关文章

  1. 1

    如何将p标签中的文本回调到输入文本字段?

  2. 2

    如何将两个带有边距的文本字段放在一行中?

  3. 3

    如何将文本字段的值传递给 Swift3 中的按钮单击函数?

  4. 4

    如何将validation_errors()放在文本字段的右侧?

  5. 5

    如何将文本字段的数据显示在表视图单元格的标签上?

  6. 6

    如何将文本字段的QML文本转换为float和int

  7. 7

    将图像放在文本字段内

  8. 8

    将图像放在文本字段内

  9. 9

    如何将焦点更改为具有多个文本字段的ListView中的特定字段

  10. 10

    在Excel中-如何将文本字段与日期字段连接

  11. 11

    如何将焦点更改为具有多个文本字段的ListView中的特定字段

  12. 12

    如何将文本变量分配给 Visio 2013 中的文本字段?

  13. 13

    如何将“select”下拉列表中的文本值设置为“input”文本字段?

  14. 14

    如何正确连接 SQLite 与 JavaFX 中的文本字段和标签?

  15. 15

    如何将文本字段中的值添加到 eclipse 中的 jcombobox

  16. 16

    如何将静态弹出框用于文本字段?

  17. 17

    如何将段落与文本字段对齐

  18. 18

    如何将Child追加到文本字段?

  19. 19

    如何将验证文本字段设置为包?

  20. 20

    如何将文本放在div标签下面?

  21. 21

    如何将动态html添加到jQuery对话框的文本字段中?

  22. 22

    如何将颜色选择器功能集成到动态文本字段中

  23. 23

    页面加载后,如何将值加载到输入文本字段中?

  24. 24

    如何将文本字段更改通知合并到textFieldDidEndEditing中

  25. 25

    如何将文本字段更改通知合并到textFieldDidEndEditing中

  26. 26

    如何将颜色选择器功能集成到动态文本字段中

  27. 27

    如何将多个getString组合到一个文本字段中

  28. 28

    如何将动态html添加到jQuery对话框的文本字段中?

  29. 29

    在 Xcode (Mac) 中,如何将文本字段更新为 WebView URL (Cocoa)

热门标签

归档