2012-04-11 1 views
-1

私はJavaを使い慣れていないので、メインクラスからどのようにテキストエリアを取得できますか?JFrameを使用して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)); 

} 

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

+0

あなたの質問は明確でも簡潔でもありません – ControlAltDel

答えて

1

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

修正しますか?他のすべてのクラスで利用できるようにしてください。

public static GuiManager animator = new GuiManager(); 

置くことをあなたは、そのクラスの他のすべての変数を宣言し、「createAndShowGUI()」メソッドに位置していたものを取り出しています。

関連する問題