-1

このようなボタンを作成するにはどうすればよいですか?

ここに画像の説明を入力

        JPanel jp = new JPanel();
        JPanel jpB1 = new JPanel();
        JPanel jpB2 = new JPanel();
        JPanel jpB3 = new JPanel();
        JButton jb1 = new JButton("button1");
        JButton jb2 = new JButton("button2");
        JButton jb3 = new JButton("button3");
            ...
        JLabel jl = new JLabel("label");
        ...
        jp.setLayout(new BorderLayout());
        ...
        jpB1.add(jb1);
        jpB2.add(jb2);
        jpB3.add(jb3);
        ...
        jp.add(jpB1, BorderLayout.NORTH);
        jp.add(jpB2, BorderLayout.CENTER);
        jp.add(jpB3, BorderLayout.SOUTH);
            ...

3つのパネルを作成してメインパネルに追加する際にこのコードを試しました。北に 2 つのボタン、南に 1 つのボタンが表示されます。誰かが私を助けることができますか?

4

1 に答える 1

3

のデフォルトのレイアウトJPanelFlowLayout; デフォルトの制約を持つaGridBagLayoutは、フレームの の中央に配置されますBorderLayout.CENTER。また、pack()同梱Windowして最後に表示します。演習として残った初期スレッドの使用。

補遺: レイアウトの問題を解決するための便利なトリックは、囲んでいるコンテナーの背景色を対照的な色に設定することです。たとえば、

jpB2.setBackground(Color.blue);

画像

import java.awt.BorderLayout;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Bouton2 {

    public static void main(String[] args) {

        final int LARGEUR = 400;
        final int HAUTEUR = 300;

        JFrame jf = new JFrame();
        JPanel jp = new JPanel();
        JPanel jpB1 = new JPanel();
        JPanel jpB2 = new JPanel(new GridBagLayout());
        JPanel jpB3 = new JPanel();
        JButton jb1 = new JButton("Cliquez ici");
        JButton jb2 = new JButton("Je compte");
        JButton jb3 = new JButton("J'agrandis");

        JLabel jl = new JLabel("0 clic");

        jp.setLayout(new BorderLayout());

        jpB1.add(jb1);
        jpB2.add(jb2);
        jpB3.add(jb3);

        jp.add(jpB1, BorderLayout.NORTH);
        jp.add(jpB2, BorderLayout.CENTER);
        jp.add(jpB3, BorderLayout.SOUTH);

        jf.setTitle("Fenêtre Bouton2");
        jf.setContentPane(jp);
        jf.pack();
        jf.setSize(LARGEUR, HAUTEUR);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);

    }
}
于 2013-03-14T00:48:15.653 に答える