0

我必须为练习创建一个简单的计算。应该有 4 个按钮和一个文本字段作为显示。这是我的 4 个按钮的代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class JFrameExample {

  JButton btn1 = new JButton("1");
  JButton btn2 = new JButton("2");
  JButton btn3 = new JButton("+");
  JButton btn4 = new JButton("=");

  public void calculator(){
    JFrame frame = new JFrame("SIMPLE JAVA CALCULATOR");
    frame.setSize(320,320);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);
    frame.setVisible(true);

    JPanel HeadPanel = new JPanel();
    JPanel NumberPanel = new JPanel();
    JPanel LabelPanel = new JPanel();

    NumberPanel.add(btn1);  
    NumberPanel.add(btn2);
    NumberPanel.add(btn3);
    NumberPanel.add(btn4);

    NumberPanel.setLayout(new GridLayout(2,2));
    frame.add(NumberPanel,BorderLayout.CENTER);
  }

  public static void main(String[] args) {
    JFrameExample jf = new JFrameExample();
    jf.calculator();
  }
}

我的问题是我不知道如何插入文本字段。我尝试了一些来自互联网的方法,但没有结果。大家能给我一个解决方案吗?我该怎么做?至少链接到如何做的教程。

4

4 回答 4

6

您将需要一个 JTextField。您可以通过调用setText()和来设置和获取文本内容getText()

我会去:

JPanel (BorderLayout)
   |
   +-- JPanel (GridLayout), BorderLayout.SOUTH
   |    |
   |    + Your buttons
   |
   +-- JTextField, BorderLayout.NORTH
于 2013-08-16T09:21:39.990 回答
0

将 JTextField 拖到表单上。

现在使用 jtextFieldObject.setText() 方法设置其中的值。jtextFieldObject..getText() 方法检索文本字段内的文本。

于 2013-08-16T09:31:52.953 回答
0

可能会有所帮助。并且在使用它之前,您必须对不同的组件及其方法有基本的了解。所以最好先参考一些基础教程,而不是直接实现它。

于 2013-08-16T09:35:44.647 回答
0

希望对你有帮助

import java.awt.*;
import javax.swing.*;

public class zzzz {
JFrame f;
JButton one,two,three,four,five,six,seven,eight,nine,zero,point,equal,plus,minus,divide,multiply;
Container c;
JTextField j;

public zzzz(){
f=new JFrame("Calculator GUI");

f.setSize(250, 220);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(false);


c=f.getContentPane();

Dimension d=new Dimension(42,25);
Dimension d1=new Dimension(220,35);
Dimension d2=new Dimension(165,200);
Dimension d3=new Dimension(45,200);
Dimension d4=new Dimension(200,30);

FlowLayout fl=new FlowLayout(FlowLayout.CENTER);



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");
point=new JButton(".");
equal=new JButton("=");

plus=new JButton("+");
minus=new JButton("-");
divide=new JButton("/");
multiply=new JButton("x");

j=new JTextField();
j.setEditable(false);

JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();

p1.setLayout(new FlowLayout(FlowLayout.RIGHT));
p2.setLayout(new FlowLayout(FlowLayout.CENTER));
p3.setLayout(new FlowLayout(FlowLayout.CENTER));

p1.setPreferredSize(d1);
p2.setPreferredSize(d2);
p3.setPreferredSize(d3);


p1.setBackground(Color.BLACK);
p2.setBackground(Color.BLACK);
p3.setBackground(Color.BLACK);


j.setPreferredSize(d4);
one.setPreferredSize(d);
two.setPreferredSize(d);
three.setPreferredSize(d);
four.setPreferredSize(d);
five.setPreferredSize(d);
six.setPreferredSize(d);
seven.setPreferredSize(d);
eight.setPreferredSize(d);
nine.setPreferredSize(d);
zero.setPreferredSize(d);
point.setPreferredSize(d);
equal.setPreferredSize(d);
plus.setPreferredSize(d);
minus.setPreferredSize(d);
divide.setPreferredSize(d);
multiply.setPreferredSize(d);

p1.add(j);
p2.add(seven);
p2.add(eight);
p2.add(nine);
p3.add(divide);
p2.add(four);   
p2.add(five);
p2.add(six);
p3.add(multiply);
p2.add(one);
p2.add(two);
p2.add(three);
p3.add(minus);
p2.add(zero);
p2.add(point);
p2.add(equal);
p3.add(plus);

c.setLayout(fl);
c.setBackground(Color.BLACK);

c.add(p1);
c.add(p2);
c.add(p3);

f.setVisible(true);
}
public static void main(String[] args) {
new zzzz();

}

}
于 2013-08-16T10:06:02.413 回答