文本字段不显示
问题描述:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GUI extends JFrame
{
//Setting out the variables
JTextField answerResponse;
JButton one,two,three,four,five,six,seven,eight,nine,zero,add,subtract,multiply,divide,equals;
String var1, var2, tanswer;
Double answer;
JPanel contentpanel;
public GUI()
{
//JFrame Window
JFrame frame = new JFrame();
frame.setSize(250, 400);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
frame.setTitle("Calculator");
frame.setLocationRelativeTo(null);
//Buttons
one = new JButton("1"); two = new JButton("2"); three = new JButton("3");
four = new JButton("4"); five = new JButton("5"); six = new JButton("6");
seven = new JButton("7"); eight = new JButton("8"); nine = new JButton("9");
zero = new JButton("0"); add = new JButton("+"); divide = new JButton("/");
multiply = new JButton("*"); subtract = new JButton("-"); equals = new JButton("=");
//Dimensions
Dimension dim = new Dimension(75, 25);
one.setPreferredSize(dim); two.setPreferredSize(dim); three.setPreferredSize(dim);
four.setPreferredSize(dim); five.setPreferredSize(dim); six.setPreferredSize(dim);
seven.setPreferredSize(dim); eight.setPreferredSize(dim); nine.setPreferredSize(dim);
zero.setPreferredSize(new Dimension(225, 25)); add.setPreferredSize(new Dimension(113, 25)); subtract.setPreferredSize(new Dimension(113, 25));
multiply.setPreferredSize(new Dimension(113, 25)); divide.setPreferredSize(new Dimension(113, 25)); equals.setPreferredSize(new Dimension(225, 25));
//Content Panel
JPanel contentPanel = new JPanel();
frame.setContentPane(contentPanel);
contentPanel.setLayout(new FlowLayout());
//Adding to content panel
contentPanel.add(one); contentPanel.add(two); contentPanel.add(three);
contentPanel.add(four); contentPanel.add(five); contentPanel.add(six);
contentPanel.add(seven); contentPanel.add(eight); contentPanel.add(nine);
contentPanel.add(zero); contentPanel.add(add); contentPanel.add(subtract);
contentPanel.add(multiply); contentPanel.add(divide); contentPanel.add(equals);
//Declaring Variable Values
answerResponse = new JTextField(null, 20);
answerResponse.setEditable(false);
contentPanel.add(answerResponse);
}
}
我在尝试制作计算器时遇到问题。名为“answerResponse”的文本字段未显示。其余的按钮等,文本字段应该是第一个在顶部。文本字段不显示
答
采取frame.setVisible(true);
,并将其置于contentPanel.add(answerResponse);
为上。
虽然没有证据并非如此,请确保您在事件指派线程的上下文中执行你的UI代码,请参阅Initial Threads更多细节
也看看Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?
你应该也可以使用不使用窗口的setSize
,而使用pack
来代替,因为这将考虑到平台和窗口边界之间发生的各种外观和感觉的区别
将jframe工作人员放在最后 – mussdroid 2014-09-02 08:03:10