Swing - 使用JTextfield输入创建GridLayout

时间:2016-05-14 13:39:33

标签: java swing grid-layout illegalargumentexception

我正在尝试创建"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final" 。我使用了两个参数 - m和n取自app.UseStaticFiles(); 个组件。

Gridlayout

国际象棋课程

JTextField

它会产生以下错误:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GUI extends JFrame
{
public static final int HEIGHT = 75;
public static final int WIDTH = 450;

    JLabel m_label, n_label;
    JTextField m_enter,n_enter;
    JButton generate;
    int m,n;
    GUI g;

public void draw()
{
    m=Integer.parseInt(m_enter.getText());
    n=Integer.parseInt(n_enter.getText());
    new Chess();
}

GUI()
{

    setPreferredSize(new Dimension(WIDTH,HEIGHT));
    setLayout(new FlowLayout());
    setVisible(true);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);

    m_label = new JLabel("M:");
    m_enter = new JTextField(5);
    n_label = new JLabel("N:");
    n_enter = new JTextField(5);

    generate = new JButton("Generate!");

    add(m_label);
    add(m_enter);

    add(n_label);
    add(n_enter);

    add(generate);
    pack();

    generate.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            draw();
        }
    });
}

public static void main(String[] args)
{
    new GUI();
}}    

处理完成,退出代码为0

1 个答案:

答案 0 :(得分:2)

你的问题是你永远不会设置国际象棋的m或n值。给Chess一个构造函数,允许外部类设置这些字段,然后传入它们。

Chess(int m, int n) {
    this.m = m;
    this.n = n;
    //if statement to check if NULL or both set to zero
    //{
        //TODO:  Check to make sure no NULLs or Zero values
    //}
    setPreferredSize(new Dimension(WIDTH,HEIGHT));
    setVisible(true);
    setLayout(new GridLayout(m,n));
    pack();
}

主要课程:

  • 编程中没有“魔力”。你的字段不会神奇地改变,如果你想让它们改变,程序员必须改变它们。
  • 请勿忽略您收到的异常堆栈跟踪消息,因为它包含有助于您解决问题的重要信息,包括 问题
  • 您的问题最初是无法回答的,因为您没有发布导致错误的密钥代码(请参阅上述内容)。请查看tourhelp以及how to ask good questions部分,详细了解如何改善未来的问题并增加获得体面帮助的机会。