Java JTextField中没有输出

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

这是我第一次用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
。运行它并查看数字是否正确显示。

您不是指
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
    ,除非它是一个
    大写常量
    ),并始终如一地使用它。