0

絶対配置 (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()
            {
                新しい電卓();
            }
        });
    }
}
4

1 に答える 1