私は次のインターフェース構造を持っています: ボタンを押すと、いくつかのファイル (クラスファイル内) を参照して選択できるフレームで、ファイル (別のクラスファイル内) を読み取り、何らかの処理のためにそれらを送信します (別のクラスファイル内)。クラスファイル、3番目)。処理自体は、この質問には関係ありません。
先ほどの処理ボタンを押すと、新しいウィンドウ(フレーム)が立ち上がります。そのウィンドウには、処理中にコンソール出力を表示し、次に別のテキストを表示するテキストエリアがあります。
2 番目のフレームを描画するメソッドは、処理ファイルである 3 番目のクラス ファイルに次のように配置されています。
public static void drawScenario(){
final JPanel mainPanel2 = new JPanel();
JPanel firstLine = new JPanel();
JPanel secLine = new JPanel();
mainPanel2.setLayout(new BoxLayout(mainPanel2, BoxLayout.Y_AXIS));
mainPanel2.setBorder(new EmptyBorder(new Insets(5, 5, 5, 5)));
mainPanel2.add(Box.createVerticalGlue());
firstLine.setLayout(new BoxLayout(firstLine, BoxLayout.X_AXIS));
firstLine.setBorder(new EmptyBorder(new Insets(5, 5, 5, 5)));
firstLine.add(Box.createVerticalGlue());
secLine.setLayout(new BoxLayout(secLine, BoxLayout.X_AXIS));
secLine.setBorder(new EmptyBorder(new Insets(5, 5, 5, 5)));
secLine.add(Box.createVerticalGlue());
JTextArea textArea = new JTextArea("", 10, 40);
textArea.setLineWrap(true);
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
textArea.setEditable(false);
JLabel label1 = new JLabel("Processing results:");
firstLine.add(Box.createRigidArea(new Dimension(5,0)));
firstLine.add(label1);
firstLine.add(Box.createRigidArea(new Dimension(5,0)));
secLine.add(textArea);
secLine.add(Box.createRigidArea(new Dimension(5,0)));
mainPanel2.add(firstLine);
mainPanel2.add(Box.createRigidArea(new Dimension(0, 30)));
mainPanel2.add(secLine);
mainPanel2.add(Box.createRigidArea(new Dimension(0, 20)));
JFrame frame = new JFrame("Test results");
frame.setSize(400, 300);
frame.setLocation(50,50);
frame.setVisible( true );
frame.add(mainPanel2);
frame.pack();
}
処理メソッド ( public static void compare(String txt1, String txt2) ) も同じファイルの drawScenario() メソッドの下にあります。私の質問は、compare() から drawScenario() メソッドの TextArea にテキストを出力するにはどうすればよいですか?
また、compare() の前に drawScenario() を呼び出しますが、処理中にウィンドウは完全には描画されません (黒い列が表示され、その中に TextArea が描画されません)。それを修正する方法はありますか?
ありがとうございました!