8

私は Java プログラムの作成方法を学ぼうとしており、Swing を使用しています。ウィンドウの左上隅にボタンを配置しようとしていますが、上部中央に移動し続けます。

public void createGUI(){
    JFrame frame = new JFrame("My Project");
    frame.setDefaultCloseOperation(3);
    frame.setSize(400, 350);
    frame.setVisible(true);

    JPanel panel = new JPanel();

    frame.add(panel);

    addButtonGUI(panel, new JButton(), "test", 1, 1);
}

public void addButtonGUI(JPanel panel, JButton button, String text, int x, int y){
    GridBagConstraints gbc = new GridBagConstraints();
    button.setText(text);
    button.setEnabled(true);
    gbc.gridx = x;
    gbc.gridy = y;
    gbc.gridwidth = 2;
    gbc.weightx = 1.0D;
    gbc.fill = 2;
    panel.add(button, gbc);
}

私は何を間違っていますか、またはこれを行うためのより良い方法はありますか? 助けてください

4

2 に答える 2

7

使用するのレイアウトJPanelを設定する必要があります。GridBagLayoutGridBagConstraints

JPanel panel = new JPanel(new GridBagLayout());

また、有効な「セル」が 1 つしかないため、アンカーを使用して、Y 軸で移動できるように設定weightyする必要があります。JButton

gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.weighty = 1.0;

また、設定を次のようにfill設定しNONEます。

gbc.fill = GridBagConstraints.NONE;

ボタンがパネルの全幅を占有しないようにします。(2 =水平塗りつぶし)。

于 2012-12-13T20:04:10.190 に答える
2

それ以外の

addButtonGUI(panel, new JButton(), "test", 1, 1);
}

使ったらどうなるか

addButtonGUI(panel, new JButton(), "test", 0, 0);
}
于 2012-12-13T20:00:44.600 に答える