[英]Text Area not printing input when clicked button in Java
Heres my code guys. 这是我的代码人员。 I have reviewed this and not sure why it is not outputting the Celcius temperature in the JTextArea once the JButton is clicked which should receive its input from the JTextField. 我已经回顾过这个并且不确定为什么在点击JButton后它不会在JTextArea中输出Celcius温度,它应该从JTextField接收它的输入。
Heres the code... 继承人代码......
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class C_to_F extends JFrame {
JPanel layout = new JPanel();
JLabel title = new JLabel("<html>Welcome to Farenheit to Celcius!</html>");
JLabel inputtxt = new JLabel("<html>Input Farenheit:</html>");
static JTextField input = new JTextField (null);
static JTextArea answer = new JTextArea();
static JButton submit = new JButton("Submit");
public static void main(String[] args) {
JFrame frame = new C_to_F();
frame.show();
}
public static void submit() {
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
input();
}
});
}
public static void input() {
String TextBox = input.getText();
float farenheit = Float.parseFloat(TextBox);
for(int i=0;i<=0;i++) {
double celcius = (farenheit - 32) * 5/9;
String celciustxt = ("Celcius = " + celcius);
answer.setText(String.valueOf(celciustxt));
}
}
public C_to_F() {
setTitle("Farenheit to Celcius");
setSize(300,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(true);
layout.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
layout.setLayout(new GridLayout(8,1));
inputtxt.setHorizontalTextPosition(SwingConstants.CENTER);
title.setHorizontalTextPosition(SwingConstants.CENTER);
add(layout);
layout.add(title);
layout.add(inputtxt);
layout.add(input);
layout.add(submit);
layout.add(answer);
setVisible(true);
}
}
Thanks guys! 多谢你们!
您尚未调用submit()
将侦听器添加到按钮
您永远不会调用使用submit
按钮注册ActionListener
的方法submit
You need to register the Listener on the button, eg: 您需要在按钮上注册监听器,例如:
submit.addActionListener(...);
layout.add(submit);
I have modified your code a little. 我稍微修改了你的代码。 See if this works 看看这是否有效
public class C_to_F extends JFrame{
JPanel layout = new JPanel();
JLabel title = new JLabel("<html>Welcome to Farenheit to Celcius!</html>");
JLabel inputtxt = new JLabel("<html>Input Farenheit:</html>");
static JTextField input = new JTextField (null);
static JTextArea answer = new JTextArea();
static JButton submit = new JButton("Submit");
public static void main(String[] args) {
JFrame frame = new C_to_F();
frame.pack();
frame.setVisible(true);
}
public static void input() {
String TextBox = input.getText();
float farenheit = Float.parseFloat(TextBox);
for(int i=0;i<=0;i++) {
double celcius = (farenheit - 32) * 5/9;
String celciustxt = ("Celcius = " + celcius);
answer.setText(String.valueOf(celciustxt));
}
}
public C_to_F() {
setTitle("Farenheit to Celcius");
setSize(300,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(true);
layout.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
layout.setLayout(new GridLayout(8,1));
inputtxt.setHorizontalTextPosition(SwingConstants.CENTER);
title.setHorizontalTextPosition(SwingConstants.CENTER);
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
input();
SwingUtilities.updateComponentTreeUI(layout);
}
});
add(layout);
layout.add(title);
layout.add(inputtxt);
layout.add(input);
layout.add(submit);
layout.add(answer);
setVisible(true);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.