JTextField 中无输出
No Output in JTextField
这是我第一次在 JAVA 中编写 GUI。我正在为我的项目尝试一个转换器程序,但是当我尝试 运行 该程序时我没有得到任何输出。我的代码不完整。
package Exams;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.JTextPane;
import javax.swing.DropMode;
public class Project {
private JFrame frame;
private JTextField txtEnterText;
JTextArea txtDisplay = new JTextArea(300,300);
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Project window = new Project();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Project() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.getContentPane().setEnabled(false);
frame.setBounds(100, 100, 262, 398);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
txtEnterText = new JTextField();
txtEnterText.setBounds(10, 11, 226, 37);
txtEnterText.setFont(new Font("Tahoma", Font.PLAIN, 18));
txtEnterText.setHorizontalAlignment(SwingConstants.RIGHT);
frame.getContentPane().add(txtEnterText);
txtEnterText.setColumns(10);
//ROW 1------------------------------------------------------------------------------
final JButton btn7 = new JButton("7");
btn7.setBounds(10, 59, 50, 50);
btn7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn7.getText();
txtDisplay.setText(EnterNumber);
}
});
btn7.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn7);
final JButton btn8 = new JButton("8");
btn8.setBounds(70, 59, 50, 50);
btn8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn8.getText();
txtDisplay.setText(EnterNumber);
}
});
btn8.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn8);
final JButton btn9 = new JButton("9");
btn9.setBounds(130, 59, 50, 50);
btn9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn9.getText();
txtDisplay.setText(EnterNumber);
}
});
btn9.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn9);
JButton btndm = new JButton("dm");
btndm.setBounds(190, 59, 50, 50);
btndm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btndm);
//ROW 2------------------------------------------------------------------------------
final JButton btn4 = new JButton("4");
btn4.setBounds(10, 119, 50, 50);
btn4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn4.getText();
txtDisplay.setText(EnterNumber);
}
});
btn4.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn4);
final JButton btn5 = new JButton("5");
btn5.setBounds(70, 119, 50, 50);
btn5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn5.getText();
txtDisplay.setText(EnterNumber);
}
});
btn5.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn5);
final JButton btn6 = new JButton("6");
btn6.setBounds(130, 119, 50, 50);
btn6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn6.getText();
txtDisplay.setText(EnterNumber);
}
});
btn6.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn6);
JButton btncm = new JButton("cm");
btncm.setBounds(190, 119, 50, 50);
btncm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btncm);
//ROW 3------------------------------------------------------------------------
final JButton btn1 = new JButton("1");
btn1.setBounds(10, 179, 50, 50);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn1.getText();
txtDisplay.setText(EnterNumber);
}
});
btn1.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn1);
final JButton btn2 = new JButton("2");
btn2.setBounds(70, 179, 50, 50);
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn2.getText();
txtDisplay.setText(EnterNumber);
}
});
btn2.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn2);
final JButton btn3 = new JButton("3");
btn3.setBounds(130, 179, 50, 50);
btn3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn3.getText();
txtDisplay.setText(EnterNumber);
}
});
btn3.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn3);
JButton btnmm = new JButton("mm");
btnmm.setBounds(190, 179, 50, 50);
btnmm.setFont(new Font("Tahoma", Font.BOLD, 10));
frame.getContentPane().add(btnmm);
//ROW 4----------------------------------------------------------------------
final JButton btn0 = new JButton("0");
btn0.setBounds(70, 239, 50, 50);
btn0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn0.getText();
txtDisplay.setText(EnterNumber);
}
});
btn0.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn0);
JButton btnkm = new JButton("km");
btnkm.setBounds(10, 239, 50, 50);
btnkm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnkm);
JButton btnmt = new JButton("mt");
btnmt.setBounds(130, 239, 50, 50);
btnmt.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnmt);
JButton btn_microm = new JButton("micro_m");
btn_microm.setBounds(190, 239, 50, 50);
btn_microm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btn_microm);
//ROW 5-----------------------------------------------------------------------
JButton btnnm = new JButton("nm");
btnnm.setBounds(10, 299, 50, 50);
btnnm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnnm);
JButton btnmi = new JButton("mi");
btnmi.setBounds(70, 299, 50, 50);
btnmi.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btnmi);
JButton btnyd = new JButton("yd");
btnyd.setBounds(130, 299, 50, 50);
btnyd.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnyd);
JButton btnft = new JButton("ft");
btnft.setBounds(190, 299, 50, 50);
btnft.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnft);
}
}
你不是说 txtDisplay
,对吧?您的意思是 txtEnterText
在每个事件处理程序中。 运行 并查看正确显示的数字。
private JTextField txtEnterText;
您没有在 txtEnterText
中设置任何文本,这就是为什么您的 JTextField
是空的。您需要在 JTextField
txtEnterText
.
中设置文本
示例:
txtEnterText.setText("SOME TEXT");
but I am not getting any output when I try running the program
String EnterNumber = txtDisplay.getText() + btn0.getText();
txtDisplay.setText(EnterNumber);
根据上面的代码,您尝试将文本添加到 JTextArea,但您从未将 JTextArea 添加到框架,因此您永远看不到输出。
所以解决方案似乎是将文本区域添加到框架中,并删除您从未使用过的文本字段。
上述代码的其他问题:
变量名不应以大写字符开头。您的大部分变量都是正确的。保持一致!!!
要将文本添加到文本区域,您可以使用 append(...)
方法。
类似于:
txtDisplay.append(enterNumber);
这是我第一次在 JAVA 中编写 GUI。我正在为我的项目尝试一个转换器程序,但是当我尝试 运行 该程序时我没有得到任何输出。我的代码不完整。
package Exams;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.JTextPane;
import javax.swing.DropMode;
public class Project {
private JFrame frame;
private JTextField txtEnterText;
JTextArea txtDisplay = new JTextArea(300,300);
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Project window = new Project();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Project() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.getContentPane().setEnabled(false);
frame.setBounds(100, 100, 262, 398);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
txtEnterText = new JTextField();
txtEnterText.setBounds(10, 11, 226, 37);
txtEnterText.setFont(new Font("Tahoma", Font.PLAIN, 18));
txtEnterText.setHorizontalAlignment(SwingConstants.RIGHT);
frame.getContentPane().add(txtEnterText);
txtEnterText.setColumns(10);
//ROW 1------------------------------------------------------------------------------
final JButton btn7 = new JButton("7");
btn7.setBounds(10, 59, 50, 50);
btn7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn7.getText();
txtDisplay.setText(EnterNumber);
}
});
btn7.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn7);
final JButton btn8 = new JButton("8");
btn8.setBounds(70, 59, 50, 50);
btn8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn8.getText();
txtDisplay.setText(EnterNumber);
}
});
btn8.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn8);
final JButton btn9 = new JButton("9");
btn9.setBounds(130, 59, 50, 50);
btn9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn9.getText();
txtDisplay.setText(EnterNumber);
}
});
btn9.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn9);
JButton btndm = new JButton("dm");
btndm.setBounds(190, 59, 50, 50);
btndm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btndm);
//ROW 2------------------------------------------------------------------------------
final JButton btn4 = new JButton("4");
btn4.setBounds(10, 119, 50, 50);
btn4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn4.getText();
txtDisplay.setText(EnterNumber);
}
});
btn4.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn4);
final JButton btn5 = new JButton("5");
btn5.setBounds(70, 119, 50, 50);
btn5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn5.getText();
txtDisplay.setText(EnterNumber);
}
});
btn5.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn5);
final JButton btn6 = new JButton("6");
btn6.setBounds(130, 119, 50, 50);
btn6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn6.getText();
txtDisplay.setText(EnterNumber);
}
});
btn6.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn6);
JButton btncm = new JButton("cm");
btncm.setBounds(190, 119, 50, 50);
btncm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btncm);
//ROW 3------------------------------------------------------------------------
final JButton btn1 = new JButton("1");
btn1.setBounds(10, 179, 50, 50);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn1.getText();
txtDisplay.setText(EnterNumber);
}
});
btn1.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn1);
final JButton btn2 = new JButton("2");
btn2.setBounds(70, 179, 50, 50);
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn2.getText();
txtDisplay.setText(EnterNumber);
}
});
btn2.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn2);
final JButton btn3 = new JButton("3");
btn3.setBounds(130, 179, 50, 50);
btn3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn3.getText();
txtDisplay.setText(EnterNumber);
}
});
btn3.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn3);
JButton btnmm = new JButton("mm");
btnmm.setBounds(190, 179, 50, 50);
btnmm.setFont(new Font("Tahoma", Font.BOLD, 10));
frame.getContentPane().add(btnmm);
//ROW 4----------------------------------------------------------------------
final JButton btn0 = new JButton("0");
btn0.setBounds(70, 239, 50, 50);
btn0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String EnterNumber = txtDisplay.getText() + btn0.getText();
txtDisplay.setText(EnterNumber);
}
});
btn0.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btn0);
JButton btnkm = new JButton("km");
btnkm.setBounds(10, 239, 50, 50);
btnkm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnkm);
JButton btnmt = new JButton("mt");
btnmt.setBounds(130, 239, 50, 50);
btnmt.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnmt);
JButton btn_microm = new JButton("micro_m");
btn_microm.setBounds(190, 239, 50, 50);
btn_microm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btn_microm);
//ROW 5-----------------------------------------------------------------------
JButton btnnm = new JButton("nm");
btnnm.setBounds(10, 299, 50, 50);
btnnm.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnnm);
JButton btnmi = new JButton("mi");
btnmi.setBounds(70, 299, 50, 50);
btnmi.setFont(new Font("Tahoma", Font.BOLD, 13));
frame.getContentPane().add(btnmi);
JButton btnyd = new JButton("yd");
btnyd.setBounds(130, 299, 50, 50);
btnyd.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnyd);
JButton btnft = new JButton("ft");
btnft.setBounds(190, 299, 50, 50);
btnft.setFont(new Font("Tahoma", Font.BOLD, 11));
frame.getContentPane().add(btnft);
}
}
你不是说 txtDisplay
,对吧?您的意思是 txtEnterText
在每个事件处理程序中。 运行 并查看正确显示的数字。
private JTextField txtEnterText;
您没有在 txtEnterText
中设置任何文本,这就是为什么您的 JTextField
是空的。您需要在 JTextField
txtEnterText
.
示例:
txtEnterText.setText("SOME TEXT");
but I am not getting any output when I try running the program
String EnterNumber = txtDisplay.getText() + btn0.getText();
txtDisplay.setText(EnterNumber);
根据上面的代码,您尝试将文本添加到 JTextArea,但您从未将 JTextArea 添加到框架,因此您永远看不到输出。
所以解决方案似乎是将文本区域添加到框架中,并删除您从未使用过的文本字段。
上述代码的其他问题:
变量名不应以大写字符开头。您的大部分变量都是正确的。保持一致!!!
要将文本添加到文本区域,您可以使用
append(...)
方法。
类似于:
txtDisplay.append(enterNumber);