絶対配置 (setBounds と null レイアウト) を使用して作業し、レイアウト マネージャーの練習を開始しました。このコードは gridbag レイアウトを使用していますが、表示されないコンポーネントはほとんどありません。セルに何らかの問題があるか、他の何かが助けてください!
java.util.StringTokenizer をインポートします。
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class Calculator は JFrame を拡張します
{
JButton add,sub,mul,div,sin,cos,tan,clear,negate,inverse,zero,one,two,three,four,five,six,seven,eight,nine,equalTo,percentage,sqrt;
JTextField 入力;
GridBagLayout gbl;
private void addComponent(Component component,int gridx, int gridy, int gridwidth, int gridheight,Insets insets)
{
add(component, new GridBagConstraints(gridx, gridy,gridwidth, gridheight, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insets, 0,0));
}
電卓()
{
//setSize(500,400);
setVisible(真);
setLayout(gbl=new GridBagLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add= new JButton("+");
sub= new JButton("-");
mul= new JButton("*");
div= 新しい JButton("/");
sin= new JButton("sin");
cos= new JButton("cos");
tan= new JButton("tan");
clear= new JButton("C");
negate= new JButton("neg");
inverse= new JButton("1/x");
zero= 新しい JButton("0");
one= new JButton("1");
two= new JButton("2");
three= new JButton("3");
four= new JButton("4");
5 = 新しい JButton("5");
six= new JButton("6");
7 = 新しい JButton("7");
8 = 新しい JButton("8");
nine= new JButton("9");
equalTo= new JButton("=");
パーセンテージ = 新しい JButton("%");
sqrt= new JButton("sqrt");
入力 = 新しい JTextField(20);
addComponent(input,0,0,0,1,new Insets(10,10,100,4)); //tldr
addComponent(add,0,1,1,1,new Insets(4,4,4,4));
addComponent(sub,1,1,2,1,new Insets(4,4,4,4));
addComponent(mul,2,1,3,1,new Insets(4,4,4,4)); // これは表示されません
addComponent(div,3,1,4,1,new Insets(4,4,4,4));
addComponent(sin,0,2,1,2,new Insets(4,4,4,4));
addComponent(cos,1,2,2,2,new Insets(4,4,4,4));
addComponent(tan,2,2,3,2,new Insets(4,4,4,4)); // これは表示されません
addComponent(clear,3,2,4,2,new Insets(4,4,4,4));
addComponent(negate,0,3,1,3,new Insets(4,4,4,4)); // これらの 4 つは表示されません
addComponent(inverse,1,3,2,3,new Insets(4,4,4,4));
addComponent(zero,2,3,3,3,new Insets(4,4,4,4));
addComponent(1,3,3,4,3,新しいインセット(4,4,4,4));
パック();
}
public static void main(文字列...args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
新しい電卓();
}
});
}
}