gpt4 book ai didi

java - 我的程序少了一个步骤!请看看你是否能找到我缺少的东西?

转载 作者:行者123 更新时间:2023-12-01 15:53:55 25 4
gpt4 key购买 nike

当这个程序运行时,它应该在我输入后列出数字,但它只输入我输入的第一个 5,我错过了什么

public class Numbers extends JFrame
{

private JTextField textField;
private JTextArea textArea, displayArea, finalArea;
private JPanel controlPanel, bottomPanel, southPanel, displayPanel, displayFinal;
private JButton enter, finalNumbers;
private String input;
private int intInput;
private int[] array = new int[5];

private int entered = 0;

public static void main(){
Numbers myFrame = new Numbers();
myFrame.setSize(600,600);
myFrame.setTitle("Numbers between 10-100 by Daniel Bendlin");
myFrame.createGUI();
myFrame.pack();
myFrame.setVisible(true);

}


public void createGUI()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new BorderLayout());

controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());

bottomPanel = new JPanel();
bottomPanel.setLayout(new FlowLayout(FlowLayout.CENTER));


southPanel = new JPanel();
displayPanel = new JPanel();

textArea = new JTextArea("Please enter 5 numbers between 10-100");
textArea.setBackground(Color.white);
displayArea = new JTextArea("");
finalArea = new JTextArea("");

textField = new JTextField(2);
textField.setBackground(Color.white);

enter = new JButton("Enter");
enter.setBackground(Color.GREEN);
enter.addActionListener(new EnterNum());
finalNumbers = new JButton("Display Final Numbers");
finalNumbers.addActionListener(new DisplayNum());

controlPanel.add(textArea);
southPanel.add(textField);
southPanel.add(enter);
displayPanel.add(displayArea);
displayPanel.add(finalNumbers);
displayPanel.add(finalArea);

window.add(controlPanel,BorderLayout.NORTH);
window.add(southPanel,BorderLayout.CENTER);
window.add(displayPanel,BorderLayout.SOUTH);
textField.requestFocusInWindow();

}
private class EnterNum implements ActionListener
{
public void actionPerformed(ActionEvent e)
{

input = textField.getText();
intInput = Integer.parseInt(input);

while (entered < array.length){

try{

if((intInput >= 10) && (intInput <= 100)){

for(int i = 0; i < array.length; i++){

array[i] = intInput;
entered = entered + 1;
textField.setText("");
displayArea.setText("Entered number(s)..." + array[i]);
}
}else{
displayArea.setText("Input numbers that range between 10 and 100");
}
}catch (NumberFormatException x){displayArea.setText("\"" + textField.getText() + "\" is not a legal number.");

textField.selectAll();
textField.requestFocus();
}

}
}
}
private class DisplayNum implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String intInput = String.valueOf(array[0]);
finalArea.setText("\n" + intInput);
}

}
}

最佳答案

您的代码存在几个问题。我不确定是否可以列出所有这些,首先是如果您希望将代码作为 Java 应用程序运行,则您的 main 方法应该采用 String 数组参数,即

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

其次,您的 actionPerformed(ActionEvent e) 方法中没有使用 whilefor 循环。

DisplayNum 类中的 actionPerformed(ActionEvent e) 方法仅显示数组的第一个元素。也许您想连接所有 5 个数字并显示?无论如何,这是经过修改的代码:

public class Numbers extends JFrame {

private JTextField textField;
private JTextArea textArea, displayArea, finalArea;
private JPanel controlPanel, bottomPanel, southPanel, displayPanel,
displayFinal;
private JButton enter, finalNumbers;
private String input;
private int intInput;
private int[] array = new int[5];

private int entered = 0;

public static void main(String[] args) {
Numbers myFrame = new Numbers();
myFrame.setSize(600, 600);
myFrame.setTitle("Numbers between 10-100 by Daniel Bendlin");
myFrame.createGUI();
myFrame.pack();
myFrame.setVisible(true);

}

public void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new BorderLayout());

controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());

bottomPanel = new JPanel();
bottomPanel.setLayout(new FlowLayout(FlowLayout.CENTER));

southPanel = new JPanel();
displayPanel = new JPanel();

textArea = new JTextArea("Please enter 5 numbers between 10-100");
textArea.setBackground(Color.white);
displayArea = new JTextArea("");
finalArea = new JTextArea("");

textField = new JTextField(2);
textField.setBackground(Color.white);

enter = new JButton("Enter");
enter.setBackground(Color.GREEN);
enter.addActionListener(new EnterNum());
finalNumbers = new JButton("Display Final Numbers");
finalNumbers.addActionListener(new DisplayNum());

controlPanel.add(textArea);
southPanel.add(textField);
southPanel.add(enter);
displayPanel.add(displayArea);
displayPanel.add(finalNumbers);
displayPanel.add(finalArea);

window.add(controlPanel, BorderLayout.NORTH);
window.add(southPanel, BorderLayout.CENTER);
window.add(displayPanel, BorderLayout.SOUTH);
textField.requestFocusInWindow();

}

private class EnterNum implements ActionListener {
public void actionPerformed(ActionEvent e) {

input = textField.getText();
intInput = Integer.parseInt(input);

if (entered < array.length) {

try {

if ((intInput >= 10) && (intInput <= 100)) {
array[entered] = intInput;
textField.setText("");
displayArea.setText("Entered number(s)..."
+ array[entered]);
entered = entered + 1;
} else {
displayArea
.setText("Input numbers that range between 10 and 100");
}
} catch (NumberFormatException x) {
displayArea.setText("\"" + textField.getText()
+ "\" is not a legal number.");

textField.selectAll();
textField.requestFocus();
}

}
}
}

private class DisplayNum implements ActionListener {
public void actionPerformed(ActionEvent e) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; i++) {
sb.append(String.valueOf(array[i]));
if(i < array.length){
sb.append(",");
}
}
finalArea.setText("\n" + sb.toString());
}

}
}

关于java - 我的程序少了一个步骤!请看看你是否能找到我缺少的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5454196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com