-1

私はこのようになりたいjframeを持っています: ここに画像の説明を入力してください

これが私のコードですが、フルスクリーンボタンを表示してください!

public class editFrame extends JFrame {

JButton saveButton;
JButton cancelButton;

public editFrame() {
    Component add = this.add(createForm());
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setBounds(100, 50, 500, 600);
    this.setVisible(true);
}

public JPanel createForm() {
    String[] labels = {"ID", "Name", "Date", "Borrow Status"};
    // Create and populate jpanel
    JPanel panel = new JPanel();
    for (int i = 0; i < 4; i++) {
        JLabel l = new JLabel(labels[i], JLabel.TRAILING);
        panel.add(l);
        JTextField textField = new JTextField(10);
        l.setLabelFor(textField);
        panel.add(textField);
    }
    SpringLayout sL = new SpringLayout();
    panel.setLayout(sL);
    SpringUtilities.makeCompactGrid(panel, 4, 2, 6, 6, 6, 6);
    
    return panel;
}

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            editFrame edF = new editFrame();
        }
    });
}
}

私は春のレイアウトを使用しようとしていますが、今は: ここに画像の説明を入力してください

すべてのjtextfieldsはとても大きいです!!

4

3 に答える 3

6

レイアウトマネージャーのチュートリアルとAPIを確認してください。ここで、JFrameのcontentPaneがデフォルトでBorderLayoutを使用していることがわかります。レイアウト定数を指定せずにコンテナを使用してBorderLayoutにコンポーネントを追加すると、BorderLayout.CENTERが追加され、スペース全体を占有し、以前に追加されたものをすべてカバーします。解決策は、レイアウトマネージャーのチュートリアルを確認してから、さまざまなレイアウトで遊んでみることです。多くの場合、JPanelsをネストし、それぞれが独自のレイアウトを使用して、単純な方法で複雑なGUIを実現することに注意してください。

于 2013-03-24T20:35:18.787 に答える
3

すべてのjtextfieldsはとても大きいです!!

これは、SpringLayoutが使用可能なスペースに基づいてフィールドのサイズを決定するためです。

あなたがそれらをあなたがすることができる高さで成長させたくないならば:

//Component add = this.add(createForm());
Component add = this.add(createForm(), BorderLayout.NORTH);

または、幅や高さを大きくしたくない場合は、FlowLayoutを使用しているパネルでパネルをラップできます。これは、コンポーネントの推奨サイズを尊重するためです。

//Component add = this.add(createForm());
JPanel wrapper = new JPanel();
wrapper.add( createForm() ) ;
add( wrapper );
于 2013-03-24T21:56:03.433 に答える
0

間違いなく-GUIを実行するためにGUIビルダーを使用します。アルゴリズムの開発に投資できる時間を減らすことができます。EclipseにはWindowBuilderProがあり、NetBeanIDEにはGUIビルダーが含まれています。

于 2013-03-24T21:29:13.043 に答える