gpt4 book ai didi

java - Eclipse 在您键入时显示数字

转载 作者:行者123 更新时间:2023-11-30 12:08:01 24 4
gpt4 key购买 nike

我正在尝试将数字添加到“将数字添加到消息”文本字段中,当我单击添加按钮时,我希望它们以列表形式显示在下方。目前它不起作用,每次我添加新号码时,号码都会被替换。这可能是一个简单的修复,但我是新手。

我遇到的第二个问题,例如,如果我在“数字计数”文本字段中输入 5,我希望“添加”按钮在我输入第五个数字后立即消失。当我输入 1 时它似乎工作并且“添加”按钮消失但对于任何其他数字它不起作用。下图显示了程序的外观。

enter image description here

package client;

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

import com.sun.glass.events.MouseEvent;
import com.sun.prism.paint.Color;

public class Client {

public static void main(String[] args) {


JFrame frame = new JFrame();
frame.setBounds(100, 100, 700, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Client TCP" );
frame.getContentPane().setLayout(null);
frame.setVisible(true);

JButton button = new JButton("Connect");
button.setBounds(400, 40, 150, 20);
frame.getContentPane().add(button);

JLabel label = new JLabel("");
label.setBounds(20, 40, 250, 20);
label.setForeground(java.awt.Color.RED);
label.setFont(new Font("Times", Font.BOLD, 12));
label.setHorizontalAlignment(SwingConstants.LEFT);
label.setVerticalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label);
label.setText("Connection Status: Not Connected");

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

label.setVisible(false);
button.setVisible(false);

JButton button = new JButton("Disconnect");
button.setBounds(400, 40, 150, 20);
frame.getContentPane().add(button);

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}

});


JLabel label = new JLabel("");
label.setBounds(20, 40, 250, 20);
label.setForeground(java.awt.Color.BLUE);
label.setFont(new Font("Times", Font.BOLD, 12));
label.setHorizontalAlignment(SwingConstants.LEFT);
label.setVerticalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label);
label.setText("Connection Status: Connected");

JButton button2 = new JButton("Set");
button2.setBounds(400, 100, 150, 20);
frame.getContentPane().add(button2);

JLabel label2 = new JLabel("");
label2.setBounds(20, 100, 250, 20);
label2.setFont(new Font("Times", Font.BOLD, 12));
label2.setHorizontalAlignment(SwingConstants.LEFT);
label2.setVerticalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label2);
label2.setText("Count of Numbers:");

JTextField textfield= new JTextField("");
textfield.setFont(new Font("Times", Font.BOLD, 14));
textfield.setBounds(175, 100, 150, 20);
frame.getContentPane().add(textfield);

button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
button2.setEnabled(false);
label2.setEnabled(false);
textfield.setEnabled(false);


JButton button3 = new JButton("Add");
button3.setBounds(400, 150, 150, 20);
frame.getContentPane().add(button3);

JLabel label3 = new JLabel("");
label3.setBounds(20, 150, 250, 20);
label3.setFont(new Font("Times", Font.BOLD, 12));
label3.setHorizontalAlignment(SwingConstants.LEFT);
label3.setVerticalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label3);
label3.setText("Add Number to Message:");

JTextField textfield2= new JTextField("");
textfield2.setFont(new Font("Times", Font.BOLD, 14));
textfield2.setBounds(175, 150, 150, 20);
frame.getContentPane().add(textfield2);

JLabel label4 = new JLabel("");
label4.setBounds(20, 200, 250, 20);
label4.setFont(new Font("Times", Font.BOLD, 12));
label4.setHorizontalAlignment(SwingConstants.LEFT);
label4.setVerticalAlignment(SwingConstants.CENTER);
frame.getContentPane().add(label4);
label4.setText("Numbers in Message:");

JTextArea textarea = new JTextArea();
textarea.setFont(new Font("Times", Font.BOLD, 14));
textarea.setBounds(20, 225, 600, 20);
textarea.setEditable(false);
frame.getContentPane().add(textarea);

button3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = "";
int clicked = 0;
clicked++;
double x = Double.parseDouble(textfield.getText());
if (clicked == x) {
button3.setVisible(false);
label3.setVisible(false);
textfield2.setVisible(false);

JButton butSend = new JButton("Send");
butSend.setBounds(275, 275, 100, 20);
frame.getContentPane().add(butSend);
}

if (!textfield2.getText().equals("")) {
double y = Double.parseDouble(textfield2.getText());
data += +y+ ",";
textarea.setText(data);

}



}
});


}
});

}

});

}

最佳答案

单击添加按钮时,它将覆盖文本字段中的文本。要附加你应该做这样的事情

//a global String to store the number data
String data = "";

然后在按钮代码中

//button listener code
if (!textfield2.getText().equals("")) {
double x = Double.parseDouble(textfield.getText());
double y = Double.parseDouble(textfield2.getText());
data += y + ",";
textarea.setText(data);
}

但是对于第二个问题,您可以向文本字段添加一个监听器,并且每次更改时都会更新一个计数器变量。这篇文章中有文本字段监听器的示例 https://stackoverflow.com/questions/3953208/value-change-listener-to-jtextfield.

总的来说,作为一些通用的编码建议,我会为您的按钮和标签命名,用一个名称来表示它们的作用,一些注释和间距也有助于提高可读性。

哦,在 Java 中,类名应该大写,包名应该小写。

-dogtreat268

关于java - Eclipse 在您键入时显示数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54525107/

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