3

これまでのところ正常に動作しているJavaプログラムがありますBorderLayoutJTextArea実行ボタンを押した後に出力を表示するために、その下に追加したいと思います。

私がやりたいことを達成するための最良の方法の例を教えてもらえますか? GridLayout2X1 を上に定義しBorderLayout、次にJTextArea下に定義する必要がありますか?

私は提案を受け入れています...

ここに私がこれまでに持っているもののイメージがあります: ここに画像の説明を入力

この下に -- 実行ボタンをクリックすると出力をキャプチャするテキスト領域が必要です。

4

3 に答える 3

1

コメントで述べたように...次のようなものはどうですか:

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;



public class Ironmantis extends JFrame{
    JTextArea textArea = new JTextArea();
    JPanel upperPanel = new JPanel();
    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,upperPanel,new JScrollPane(textArea));

    public Ironmantis(){
        textArea.setEditable(false);
        textArea.append("Operating system: "+System.getProperty("os.name")+"\n");
        textArea.append("Operating System version: " +System.getProperty("os.version")+"\n");
        textArea.append("Operating system architecture: "+ System.getProperty("os.arch")+"\n");
        textArea.append("Java version: "+ System.getProperty("java.version")+"\n");
        textArea.append("Java vendor: "+ System.getProperty("java.vendor")+"\n");
        textArea.append("Java vendor URL: "+ System.getProperty("java.vendor.url")+"\n");
        upperPanel.setPreferredSize(new Dimension(800,400));
        upperPanel.setBackground(Color.CYAN);
        splitPane.setPreferredSize(new Dimension(800,600));
        add(splitPane);
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }

        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                Ironmantis i = new Ironmantis();
                i.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                i.pack();
                i.setVisible(true);
            }
        });

    }

}

ここに画像の説明を入力

JPanelあなたとJTextAreaonを追加することでJSplitPane、あなたJTextAreaはある種のコンソールの役割を果たします。これは、私が正しく理解していれば、あなたの質問の目標です。

于 2012-11-08T17:01:53.203 に答える
1

思いついた場合は、実行ボタンを押したときに、全体の下に TextArea を追加する必要があります。

2 パネルを使用することをお勧めします。既にあるものをすべて Panel に配置し (このパネルには borderLayout があります)、その下に別のパネルを配置します。ここで、Run ボタンを押したときにプログラムで JtextArea を追加します。

編集
次のようなもの:

Window
|
|--- Panel  (borderLayout)
|      | --- (things you already have)
|
|--- Panel 2
     | ---- (JTextArea, added later by code)
于 2012-11-08T16:47:29.920 に答える
1

を使用しborder layoutます。
既存の GUI を にpanel追加し、それを およびcenterに追加しframeます。TextAreasouthborder layout

コード スニペット:

frame.setLayout(new BorderLayout());
frame.add(BorderLayout.CENTER, panel);  //panel== your existing GUI
frame.add(BorderLayout.SOUTH, textArea);  //new TextArea
于 2012-11-08T16:48:39.180 に答える