我一直在研究GUI计算器,但它无法正常工作。当我运行程序时,框架不会显示。这是我的计划:
package mycalc;
/**
*
* @author haysa
*/
import javax.swing.*;
import java.awt.event.*;
public class MyCalc {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JFrame f;
JTextField first, second;
JButton bdiv,bmul,bsub,badd,beq;
bdiv=new JButton("/");
bmul=new JButton("*");
bsub=new JButton("-");
badd=new JButton("+");
beq=new JButton("=");
bsub.setBounds(250,240,50,40);
bmul.setBounds(250,170,50,40);
bdiv.setBounds(250,100,50,40);
badd.setBounds(250,310,50,40);
beq.setBounds(180,310,50,40);
first=new JTextField("");
second=new JTextField("");
f=new JFrame("Calculator");
f.add(bdiv);
f.add(bmul);
f.add(bsub);
f.add(badd);
}
}
我不确定我的计划有什么问题。它一直说构建成功但没有出现。我知道我需要添加一些东西,但我不确定要添加什么,或者放在哪里。请帮帮我:D
答案 0 :(得分:4)
声明框架f
后,您必须使用setVisible(true);
,否则窗口将不会显示。您可能会注意到桌面上的java图标,因为它确实打开了窗口,但无法单击,移动或(显然)看到它。
//...
f=new JFrame("Calculator");
f.setVisible(true); //added this line
f.add(bdiv);
f.add(bmul);
f.add(bsub);
f.add(badd);
//...
截至目前,您的窗口非常小(使用f.setSize(x, y)
设置尺寸),它将显示在屏幕的左上角。要使窗口的左上角显示在屏幕中间,请使用f.setLocationRelativeTo(null);
。还有一件事是你必须将布局设置为null(f.setLayout(null)
),否则你的setBounds()
方法将无效。如果您有任何问题,请在下面发表评论。
答案 1 :(得分:2)
你必须添加f.setVisible(true)函数,如果你使用setBounds(x,y,w,h),那么你需要将JFrame的布局设置为null,就像这样f.setLayout(null); < / p>
class MyCalc{
public static void main(String[] args) {
// TODO code application logic here
JFrame f=new JFrame("Calculator");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(555,555);
f.setLayout(null);
JTextField first, second;
JButton bdiv,bmul,bsub,badd,beq;
bdiv=new JButton("/");
bmul=new JButton("*");
bsub=new JButton("-");
badd=new JButton("+");
beq=new JButton("=");
bsub.setBounds(250,240,50,40);
bmul.setBounds(250,170,50,40);
bdiv.setBounds(250,100,50,40);
badd.setBounds(250,310,50,40);
beq.setBounds(180,310,50,40);
first=new JTextField("");
second=new JTextField("");
f.add(bdiv);
f.add(bmul);
f.add(bsub);
f.add(badd);
f.setVisible(true);
}
}