0

私は Java の Swing に大きな問題を抱えています。これには BoxLayout を使用しましたが、それでも見た目が悪いです。レイアウトの使用法、または仮定のように変更する方法について何か提案はありますか? (ここに仮定があります

Container main = new Container();
    Container left = new Container();// here goin buttons
    Container right = new Container(); // here goin tabs +  more buttons, textfields and other stuff

    BoxLayout lewyL = new BoxLayout(left, BoxLayout.Y_AXIS);
    left.setLayout(lewyL);
    left.add(rastrowa); //radiobutton
    left.add(wektorowa);//radiobutton
    left.add(apDwuliniowa);//checkbox
    left.add(wczytaj);//button
    left.add(zapisz);//obutton
    left.add(wyczysc);//button
    BoxLayout prawyL = new BoxLayout(right, BoxLayout.Y_AXIS);
    right.setLayout(prawyL);
    right.add(zakladki);// tabs (mostly i use BoxLayout but for last one i need something more "complicated")

編集:私はこの問題をほぼ解決します。すべての要素を左に移動する必要があります(どのように見えるか)が、方法がわかりません;/これがこのクラスのコンストラクタです。

            JLabel label = new JLabel("O wektor");
    JLabel labelA = new JLabel("a:");
    JLabel labelB = new JLabel("b:");
    JButton wykonaj = new JButton("Wykonaj");
    JTextField a = new JTextField(5);
    JTextField b = new JTextField(5);
    add(label);
    add(labelA);
    add(a);
    add(labelB);
    add(b);
    add(wykonaj);   
4

1 に答える 1

1

見た目に問題はありませんが (私の意見では)、もう少し見栄えを良くしたい場合は、左側のパネル (6x1) を 3x2 のパネルに変換して、チェックボックス/ラジオボタンをオンにしてみませんか?左、右のボタン?私GridLayoutのお気に入りのクラスの 1 つ...

JPanel leftPanel = new JPanel(new GridLayout(3,2));
leftPanel.add(rastrowa);     //radiobutton
leftPanel.add(wczytaj);      //button
leftPanel.add(wektorowa);    //radiobutton
leftPanel.add(zapisz);       //obutton
leftPanel.add(apDwuliniowa); //checkbox
leftPanel.add(wyczysc);      //button

3,2行、列の数を定義することに注意してください。パネルを追加する場合、パネルは左から右、上から下にグリッドに追加されます。GridLayoutまた、コンポーネントのサイズを自動調整するため、すべてのボタンなどは同じ幅と高さになり、より一貫した外観になります。

GridLayout のドキュメントが役立つ場合があります。レイアウト マネージャーのビジュアルガイドは、さまざまな状況でより適切に機能する可能性のある他のレイアウト マネージャーを確認するのに最適な場所です。個人的にはBorderLayoutGridLayoutが最も便利で、GUI に必要な状況の約 95% をカバーしています。

于 2012-11-19T13:25:08.073 に答える