Java JTextField中没有输出
这是我第一次用JAVA编程GUI。我正在为我的项目尝试一个转换器程序,但当我尝试运行该程序时,没有得到任何输出。我的代码不完整Java JTextField中没有输出,java,swing,calculator,textfield,Java,Swing,Calculator,Textfield,这是我第一次用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.ActionLis
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
。运行它并查看数字是否正确显示。您不是指txtDisplay
,对吗?您的意思是在每个事件处理程序中使用txtEnterText
。运行它并查看正确显示的数字
private JTextField txtEnterText;
您没有在txtentext
中设置任何文本,这就是您的JTextField
为空的原因。您需要在JTextField
中设置文本
例如:
txtEnterText.setText("SOME TEXT");
您没有在txtentext
中设置任何文本,这就是您的JTextField
为空的原因。您需要在JTextField
中设置文本
例如:
txtEnterText.setText("SOME TEXT");
但是当我试着运行程序时,我没有得到任何输出
根据上面的代码,您试图将文本添加到JTextArea,但是您从未将JTextArea添加到帧中,因此您从未看到输出
因此,解决方案似乎是将文本区域添加到框架中,并去掉从未使用过的文本字段
上述代码的其他问题:
append(…)
方法即可txtDisplay.append(enterNumber);
但是当我试着运行程序时,我没有得到任何输出
根据上面的代码,您试图将文本添加到JTextArea,但是您从未将JTextArea添加到帧中,因此您从未看到输出
因此,解决方案似乎是将文本区域添加到框架中,并去掉从未使用过的文本字段
上述代码的其他问题:
append(…)
方法即可txtDisplay.append(enterNumber);
我们能看看(a)你是如何启动这个项目的,以及(b)你所说的“没有任何产出”是什么意思吗?没有任何输出看起来不寻常-你是说在控制台上,还是在你希望打开的窗口中?它们意味着按钮可能没有反应。我编译了代码,它是so1)Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。2) 现在关于所说的问题。只有一个文本字段。(在任何时候)都没有调用
txtEnterText.setText(..)
。为什么你希望它有输出?3)请学习常见的Java命名法(命名约定-例如,EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
,除非它是一个大写常量
),并一致地使用它。我们能看到(a)你是如何启动这个程序的吗,(b)你所说的“没有任何产出”是什么意思?没有任何输出看起来不寻常-你是说在控制台上,还是在你希望打开的窗口中?它们意味着按钮可能没有反应。我编译了代码,它是so1)Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。2) 现在关于所说的问题。只有一个文本字段。(在任何时候)都没有调用txtEnterText.setText(..)
。为什么您希望它有输出?3)请学习常见的Java命名法(命名约定-例如,EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
,除非它是一个大写常量
),并始终如一地使用它。