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