Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用2个JButton时出现的问题_Java_Swing_Jbutton - Fatal编程技术网

在Java中使用2个JButton时出现的问题

在Java中使用2个JButton时出现的问题,java,swing,jbutton,Java,Swing,Jbutton,我正在制作一个程序,从两个输入的数字返回一个值,并进行两次计算中的一次。 但是我不能让第二个按钮工作。当我输入两个值并单击“获取替代定义”时,它不会返回任何结果。 我已经测试了我的AltDefinition类,它很有可能正常工作。 有人能帮我找到这个代码中的问题吗 public class BinomialCoefficient implements ActionListener { private JTextField tJTextFieldResult; private JT

我正在制作一个程序,从两个输入的数字返回一个值,并进行两次计算中的一次。 但是我不能让第二个按钮工作。当我输入两个值并单击“获取替代定义”时,它不会返回任何结果。 我已经测试了我的AltDefinition类,它很有可能正常工作。 有人能帮我找到这个代码中的问题吗

public class BinomialCoefficient implements ActionListener {
    private JTextField tJTextFieldResult;
    private JTextField tTextNumber1;
    private JTextField tTextNumber2;

    public BinomialCoefficient(String pString) {
            JFrame tJFrame = new JFrame(pString);

            tJTextFieldResult = new JTextField("Enter value n and k. Note: 0 < k < n < 60", 20);
            tTextNumber1 = new JTextField("n", 10);
            tTextNumber2 = new JTextField("k", 10);

            JButton tButton1 = new JButton("Get BinomialCoefficient");
            JButton tButton2 = new JButton("Get Alternative Definition");

            tButton1.addActionListener(this);
            tButton2.addActionListener(this);

            Container tContentPane = tJFrame.getContentPane();

            tContentPane.add(tJTextFieldResult, BorderLayout.NORTH);
            tContentPane.add(tTextNumber1, BorderLayout.WEST);
            tContentPane.add(tTextNumber2, BorderLayout.EAST);
            tContentPane.add(tButton1, BorderLayout.CENTER);
            tContentPane.add(tButton2, BorderLayout.SOUTH);

            tJFrame.pack();
            tJFrame.setVisible(true);
        }

    public void actionPerformed(ActionEvent pActionEvent) {
            String tCommand = pActionEvent.getActionCommand();
            int number1 = new Integer(tTextNumber1.getText()).intValue();
            int number2 = new Integer(tTextNumber2.getText()).intValue();

            if (number1 > 60 || number2 > 60 || number1 <= 0 || number2 <= 0 || number1 < number2 ) {
                tJTextFieldResult.setText("Please follow these conditions: 0 < k < n < 60");
            } else if
             (tCommand.equals("Get BinomialCoefficient")) {
                try {
                    final double Result = Conditions.GetBiCoefficient(number1, number2);
                    tJTextFieldResult.setText("" + Result); 
                } catch (IOException e) {
                    e.printStackTrace();
                } 

                if (number1 > 60 || number2 > 60 || number1 <= 0 || number2 <= 0 || number1 < number2 ) {
                    tJTextFieldResult.setText("Please follow these conditions: 0 < k < n < 60");
                } else if
                 (tCommand.equals("Get Alternative Definition")) {
                    try {
                        final double Result2 = AltDefinition.GetAltDefinition(number1, number2);
                        tJTextFieldResult.setText("" + Result2); 
                    } catch (IOException e) {
                        e.printStackTrace();
                    }   
                }
            }
    }
}   
public类binomialconceptive实现ActionListener{
私有JTextField tJTextFieldResult;
专用JTextField tTextNumber1;
私有JTextField tTextNumber2;
公共二进制码(字符串pString){
JFrame tJFrame=新JFrame(pString);
tJTextFieldResult=新的JTextField(“输入值n和k。注意:060 | | number2>60 | | | number1 60 | | | | | number1你有
if(tCommand.equals(“Get Alternative Definition”){
,如果这检查它是否等于“Get binomialcofficient”

如果它曾经等于“Get binomiaalcofficient”,那么它显然不能等于“Get Alternative Definition”。重新考虑动作处理程序的流程

编辑:实际上,您似乎忘记了右大括号。这应该可以纠正它:

public void actionPerformed(ActionEvent pActionEvent) {
    String tCommand = pActionEvent.getActionCommand();
    int number1 = new Integer(tTextNumber1.getText()).intValue();
    int number2 = new Integer(tTextNumber2.getText()).intValue();

    if (number1 > 60 || number2 > 60 || number1 <= 0 || number2 <= 0 || number1 < number2) {
        tJTextFieldResult.setText("Please follow these conditions: 0 < k < n < 60");
    } else if (tCommand.equals("Get BinomialCoefficient")) {
        try {
            final double Result = Conditions.GetBiCoefficient(number1, number2);
            tJTextFieldResult.setText("" + Result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else if (tCommand.equals("Get Alternative Definition")) {
        try {
            final double Result2 = AltDefinition.GetAltDefinition(number1, number2);
            tJTextFieldResult.setText("" + Result2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
public void actionPerformed(ActionEvent pActionEvent){
字符串tCommand=pActionEvent.getActionCommand();
int number1=新整数(tTextNumber1.getText()).intValue();
int number2=新整数(tTextNumber2.getText()).intValue();

if(number1>60 | | | number2>60 | | number1哦,我现在看到问题了。我删除了第二个“if语句”,只留下了“Get Alternative Definition”的“else-if”。它现在可以工作了,非常感谢!没问题:为了清晰起见,我用代码对它进行了更新。请学习java命名约定并遵守它们