首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JFrame中安排JTextFields时需要帮助

在JFrame中安排JTextFields时需要帮助
EN

Stack Overflow用户
提问于 2012-01-28 08:25:41
回答 2查看 1.3K关注 0票数 0

我正在用java编写一个数独程序来学习一些算法,所以我希望用户能够输入一个未解决的数独难题。这是我到目前为止创建了81 (9x9)个盒子的方法:

代码语言:javascript
复制
JTextField input[] = new JTextField[80];
for(int i = 0; i <= 79; i++)
{   
    input[i] = new JTextField();
    input[i].setPreferredSize(new Dimension(30,30));
    f.getContentPane().add(input[i]);
}

但是,当我运行这个程序时,我得到的只是一个输入字段。我知道所有的文本字段和初始化,创建和添加到jframe。我知道你必须弄乱布局,但我不知道该怎么做。任何帮助都是适当的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-28 08:29:26

GridLayout使用JPanel

另外:

代码语言:javascript
复制
JTextField input[] = new JTextField[80];

这是80个(而不是81个)文本字段。

更新:(示例代码)

代码语言:javascript
复制
public class SodokuBoardDemo {

    public static void main(String... args) {
        SudokuBoard board = new SudokuBoard();    
        JFrame frame = new JFrame("Sodoku");
        frame.add(board);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);            
        frame.setVisible(true);
    }

    public static class SudokuBoard extends JPanel {

        public SudokuBoard() {
            setBorder(BorderFactory.createLineBorder(Color.GRAY));
            setLayout(new GridLayout(3, 3));
            BoardPart input[] = new BoardPart[9];
            for (int i = 0; i < 9; i++) {
                input[i] = new BoardPart();
                add(input[i]);
            }
        }

        public static class BoardPart extends JPanel {

            public BoardPart() {
                setBorder(BorderFactory.createLineBorder(Color.GRAY));
                setLayout(new GridLayout(3, 3));
                JTextField input[] = new JTextField[9];
                for (int i = 0; i < 9; i++) {
                    input[i] = new JTextField();
                    input[i].setPreferredSize(new Dimension(30, 30));
                    add(input[i]);
                }
            }
        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-01-28 08:39:25

如果您不确定如何使用不同的Layout,可以参考a great tutorial on Oracle。如果你想复习一下组件本身,你也可以查看组件上的tutorial。:)

ps:可能是我太困了,但看起来你已经创建了80个文本域,而不是81个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9041852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档