【问题标题】:How to change my grid size (using JTextField)如何更改我的网格大小(使用 JTextField)
【发布时间】:2014-03-28 23:17:15
【问题描述】:

所以我的窗口上有一堆网格,我有一个JTextField,我想写一个数字,比如说

20,在文本字段中,20 会将我的网格大小更改为 20,依此类推。

你看我把它设置为 30,我可以设置为任何数字,但就像我说的我想成为

运行程序后,当我在文本字段中键入数字时,可以更改/设置数字。

这是我的 Grids 类而不是主类,在我的主类中,我创建了文本字段和

这样的。另外我的 actionPreformed 在我的主目录中,所以我的actionPreformed 需要什么

(如有必要)?

所以我的问题是运行程序后如何在文本字段中写a

数字(10、20、30 任意数字)并能够根据我输入的数字更改网格大小?

我的actionPreformed 还需要什么(如果需要)?

网格类:

protected int gridSize = 30; // how many grids
public Grids( ghetto ttt  )
{
   setLayout( new GridLayout( gridSize, gridSize ) );
   theSquares = new Marker[gridSize][gridSize];
   for ( int i=0; i<gridSize; i++ )
   {
       for ( int j=0; j<gridSize; j++ )
       {
           theSquares[i][j] = new Marker(gridSize , this );
           add(theSquares[i][j]);
       }
   }

}

【问题讨论】:

  • 为此使用JSpinner。例如。如所见here.

标签: java swing jtextfield


【解决方案1】:

我会使用JSpinnerChangeListener

阅读 How to Use Spinners 上的 Swing 教程部分,了解更多信息和示例。

【讨论】:

    【解决方案2】:

    所以 actionlistener 可能不起作用。这将点击事件压缩为 ActionEvents。您可以做的是添加一个文档侦听器。见Value Change Listener to JTextField

    在你会做的主程序中

        textField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // Whatever
            }
        });
    

    你会的

     textField.getDocument().addDocumentListener(new DocumentListener() {
            @Override
            public void removeUpdate(DocumentEvent arg0) {
                //whatever
            }
            @Override
            public void insertUpdate(DocumentEvent arg0) {
                //whatever
            }
            @Override
            public void changedUpdate(DocumentEvent arg0) {
                //whatever
            }
        });
    

    【讨论】:

    • 在我的主类 actionPreformed 下,这可以放在哪里?
    • 未在 actionPerformed 下。这必须以与 actionListener 相同的方式附加到您的 jtextfield。
    • 嗯,不知道我是否理解,你介意把这部分写成代码吗?
    • @user3412136 添加示例
    猜你喜欢
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2012-07-27
    • 2012-01-12
    • 1970-01-01
    • 2019-12-15
    相关资源
    最近更新 更多