将多个 JTextFields 传递给布尔方法
passing multiple JTextFields to a boolean method
FourOfAKind 方法应该测试 4 个 JTextField 并检查它们是否彼此相等。每个 JTextField 除了一个数字。当我按下 ButtonListener 时,布尔方法 FourOfAKind 没有响应,即使它 returns false,当我输入数字 5555 ex 时。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*/
public class MyPanel extends JPanel
{
private JLabel inputLabel, outputLabel;
private JButton button;
private JTextField digit1, digit2, digit3, digit4;
public MyPanel()
{
inputLabel = new JLabel ("Enter four one digit numbers between zero and 9");
button = new JButton ("Result");
outputLabel = new JLabel ("---");
digit1 = new JTextField(1);
digit1.addActionListener (new ButtonListener());
digit2 = new JTextField(1);
digit2.addActionListener (new ButtonListener());
digit3 = new JTextField(1);
digit3.addActionListener (new ButtonListener());
digit4 = new JTextField(1);
digit4.addActionListener (new ButtonListener());
add(inputLabel);
add(digit1);
add(digit2);
add(digit3);
add(digit4);
add(button);
add(outputLabel);
setPreferredSize(new Dimension(300,100));
setBackground(Color.yellow);
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent even)
{
int num1, num2, num3, num4;
String text = digit1.getText();
num1 = Integer.parseInt(text);
String text2 = digit2.getText();
num2 = Integer.parseInt(text2);
String text3 = digit3.getText();
num3 = Integer.parseInt(text3);
String text4 = digit4.getText();
num4 = Integer.parseInt(text4);
if (fourOfAKind(num1, num2, num3, num4))
outputLabel.setText ("four of a kind");
}
}
public boolean fourOfAKind(int a, int b, int c, int d)
{
return (a == b && b == c && c == d);
}
}
ButtonListener只需要添加到按钮上,这样当你按下按钮触发事件时它就会被激活。
您可以删除“digitN.addActionListener(new ButtonListener());”并改为使用:
button.addActionListener(new ButtonListener());
像那样,您指示 Java 听按钮被按下而不是文本字段(按下 Enter
键时会触发它)
FourOfAKind 方法应该测试 4 个 JTextField 并检查它们是否彼此相等。每个 JTextField 除了一个数字。当我按下 ButtonListener 时,布尔方法 FourOfAKind 没有响应,即使它 returns false,当我输入数字 5555 ex 时。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*/
public class MyPanel extends JPanel
{
private JLabel inputLabel, outputLabel;
private JButton button;
private JTextField digit1, digit2, digit3, digit4;
public MyPanel()
{
inputLabel = new JLabel ("Enter four one digit numbers between zero and 9");
button = new JButton ("Result");
outputLabel = new JLabel ("---");
digit1 = new JTextField(1);
digit1.addActionListener (new ButtonListener());
digit2 = new JTextField(1);
digit2.addActionListener (new ButtonListener());
digit3 = new JTextField(1);
digit3.addActionListener (new ButtonListener());
digit4 = new JTextField(1);
digit4.addActionListener (new ButtonListener());
add(inputLabel);
add(digit1);
add(digit2);
add(digit3);
add(digit4);
add(button);
add(outputLabel);
setPreferredSize(new Dimension(300,100));
setBackground(Color.yellow);
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent even)
{
int num1, num2, num3, num4;
String text = digit1.getText();
num1 = Integer.parseInt(text);
String text2 = digit2.getText();
num2 = Integer.parseInt(text2);
String text3 = digit3.getText();
num3 = Integer.parseInt(text3);
String text4 = digit4.getText();
num4 = Integer.parseInt(text4);
if (fourOfAKind(num1, num2, num3, num4))
outputLabel.setText ("four of a kind");
}
}
public boolean fourOfAKind(int a, int b, int c, int d)
{
return (a == b && b == c && c == d);
}
}
ButtonListener只需要添加到按钮上,这样当你按下按钮触发事件时它就会被激活。
您可以删除“digitN.addActionListener(new ButtonListener());”并改为使用:
button.addActionListener(new ButtonListener());
像那样,您指示 Java 听按钮被按下而不是文本字段(按下 Enter
键时会触发它)