Я создал простую программу на Java, которая содержит только одну текстовую область и кнопку. Кнопка должна добавить «текст». Однако это не работает для меня.Невозможно добавить текст в JTextArea в Java из другой функции
На боковой ноте: Я стараюсь как можно короче выполнять свои функции. (Я не хочу функцию с слишком много строки кодов)
Во-первых, я создаю фрейму
private static void createFrame()
{
//Build JFrame
JFrame frame = new JFrame("Text Frame");
frame.setLayout(null);
frame.setSize(500,400);
Container contentPane = frame.getContentPane();
contentPane.add(textScrollPane());
contentPane.add(buttonAddText());
//Set Frame Visible
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Тогда TextArea и ScrollPane (для добавления скроллбар)
private static JTextArea textArea()
{
JTextArea output = new JTextArea();
output.setLineWrap(true); // Text return to line, so no horizontal scrollbar
output.setForeground(Color.BLACK);
output.setBackground(Color.WHITE);
return output;
}
private static JScrollPane textScrollPane()
{
JScrollPane scrollPane2 = new JScrollPane(textArea());
scrollPane2.setBounds(0, 0, 490, 250);
return scrollPane2;
}
И, наконец, кнопка
private static JButton buttonAddText()
{
JButton testbutton = new JButton("TEST");
testbutton.setBounds(20, 280, 138, 36);
testbutton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
//action listener here
textArea().insert("TEXT",0);
System.out.println("Button Tested!");
}
});
return testbutton;
}
Когда я нажимаю на кнопку, она не d o что угодно. Я просто хочу добавить текст в JTextArea. Я что-то забыл?
Как насчет того, чтобы вы не использовали статические. Статический не является механизмом связи между объектами. Вместо этого укажите модель или ссылку на объекты, которые вам нужно обновить до других классов. – MadProgrammer