0

JavaでSwingコンポーネントの特定のサイズを作成するには? GUIはこのように見えるはずです...

+++++++++++++++++
+  TextField    +
+++++++++++++++++
+               +
+  TextPane     +
+               +
+++++++++++++++++
+Button +Button +
+++++++++++++++++

BorderLayoutGridLayout、ネストされたなどを試しましたが、レンガのようではなく、テキストのサイズの 3 倍ではないJPanels見栄えの良い GUI を取得できません。JButtonsJTextField

4

4 に答える 4

2

その一部は、追加のスペースをどのように割り当てるかによって異なります。この GUI は、ボタンを中央に配置したまま、テキスト フィールドとテキスト エリアに追加の幅を提供します。テキスト領域に余分な高さが与えられます。

基本レイアウト

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.*;

public class BasicLayout {

    BasicLayout() {
        JPanel gui = new JPanel(new BorderLayout(2,2));

        gui.add(new JTextField(), BorderLayout.PAGE_START);
        gui.add(new JTextArea(3,15));

        JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER,5,5));
        controls.add(new JButton("Button1"));
        controls.add(new JButton("Button2"));

        gui.add(controls, BorderLayout.PAGE_END);

        JOptionPane.showMessageDialog(null, gui);
    }

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

アップデート

JTextArea最初は真ん中の部分のことかと思って、よく見てみました。AJTextPaneは、コンストラクターでサイズのヒントを受け入れないため、サイズ設定が少し難しくなります。そのために、コンテナーの推奨サイズを微調整できます (この場合、JScrollPane.

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.*;

public class BasicLayout {

    BasicLayout() {
        JPanel gui = new JPanel(new BorderLayout(2,2));

        gui.add(new JTextField(), BorderLayout.PAGE_START);
        JTextPane text = new JTextPane();
        JScrollPane scroll = new JScrollPane(text);
        Dimension d = text.getPreferredSize();
        scroll.setPreferredSize(new Dimension(d.width, d.height*3));
        gui.add(scroll);

        JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER,5,5));
        controls.add(new JButton("Button1"));
        controls.add(new JButton("Button2"));

        gui.add(controls, BorderLayout.PAGE_END);
        JOptionPane.showMessageDialog(null, gui);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new BasicLayout();
            }
        });
    }
}
于 2012-06-06T06:14:56.740 に答える
0

NetbeansでGUIを設計する場合は、それが可能です。Javaプロジェクトを作成したら、プロジェクトを選択して次の手順に進みます。

File > New File

次に、ダイアログが表示されます(すでに知っていることです)。

カテゴリでSwing GUI Forms、オプションから好きなものを選択して選択します

これがスクリーンショットです ここに画像の説明を入力してください

于 2012-06-06T05:11:22.927 に答える
0

LayoutManager は、特定のレイアウトを簡素化するために使用されます。あなたの場合、何か特定のことをしたいようですので、レイアウトマネージャーを使用しないでください!

オラクルの Web サイトには、レイアウトに関する優れたガイドがあります。このガイドの一部は、それを使用しない方法です: http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

あなたのプロジェクトで頑張ってください!

于 2012-06-06T00:45:52.697 に答える