-1

Javaを初めて使用するのですが、メインクラスからテキストエリアを取得するにはどうすればよいですか?

これは私のコードです:

public static void main(String[] args) {
    UIManager.put("swing.boldMetal", Boolean.FALSE);

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();

        }
    });
}



private static void createAndShowGUI() {
    frame = new JFrame("Frame");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    GuiManager animator = new GuiManager();

    frame.add(animator, BorderLayout.CENTER);

    // Display the window.
    frame.pack();
    frame.setSize(800, 500);
    frame.setVisible(true);
}

およびGuiManager:

public GuiManager() {
    setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));

       // .............

    // Create Scrolling Text Area in Swing
    JPanel panelLabel = new JPanel(); 
    panelLabel.setLayout(new FlowLayout());     // No content pane for JPanel.
    JPanel panel = new JPanel(); 
    panel.setLayout(new FlowLayout());     // No content pane for JPanel.


    JLabel ta1Label = new JLabel("Label One", JLabel.LEFT);
    ta1Label.setAlignmentX(Component.LEFT_ALIGNMENT);

    JTextArea ta = new JTextArea("", 10, 30);
    ta.setLineWrap(true);
    JScrollPane sbrText = new JScrollPane(ta);
    sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

    JLabel ta2Label = new JLabel("Label2", JLabel.RIGHT);
    ta2Label.setAlignmentX(Component.RIGHT_ALIGNMENT);

    JTextArea ta2 = new JTextArea("", 10, 30);
    ta2.setLineWrap(true);
    JScrollPane sbrText2 = new JScrollPane(ta2);
    sbrText2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

    panelLabel.add(ta1Label);
    panelLabel.add(ta2Label);
    panel.add(sbrText);
    panel.add(sbrText2);



    // Put everything together.
    add(panelLabel);
    add(panel);
    setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

}

私の目標は、出力をこれらのテキストエリアにリダイレクトすることです。一部の出力では、左側のテキストエリアにリダイレクトする必要がありますが、右側のテキストエリアに出力する必要がある場合もあります。それを行うための最良の解決策は何でしょうか?ありがとうございました。

4

1 に答える 1

1

アクセスしたいものはすべてGuiManagerにあるようです。ただし、その宣言をメソッドに入れます。これは、ローカル変数になることを意味します。メソッドがそのコードで終了すると、変数はなくなり、アクセスできなくなります。

修正?他のすべてのクラスで使用できるようにするだけです。

public static GuiManager animator = new GuiManager();

そのクラスの他のすべての変数を宣言した場所にそれを置き、「createAndShowGUI()」メソッドにあったものを取り出します。

于 2012-04-11T18:36:12.750 に答える