Пример:
public class SomeClass extends JFrame {
JPanel panel;
JTextField textField;
JButton button;
JLabel label;
String data;
SomeClass() {
panel = new JPanel();
textField = new JTextField(16);
button = new JButton("Magic");
label = new JLabel();
panel.add(button);
panel.add(textField);
setContentPane(panel);
setSize(400,100);
setVisible(true);
}
public static void main(String[] args) {
new SomeClass();
}
button.addActionListener(e ->{
data = textField.getText();
if((data == null) || (data.equals(""))){
return;
}else {
this.remove(panel)
JPanel panel2 = new JPanel();
label = new JLabel();
panel.add(label);
this.setContentPane(panel2);
label.setText(data);
}
});
}
Извините, я запутался .. вы можете создать новый экземпляр JFrame в actionPerformed или как я это сделал в e -> , чтолямбда-выражение.
public class AnotherClass extends JFrame {
JPanel panel;
JLabel label;
AnotherClass() {
panel = new JPanel();
label = new JLabel();
panel.add(label);
setContentPane(panel);
setSize(400,100);
setVisible(true);
}
}
А затем подумал о ссылке на другое значение класса AnotherClass (кадр 2) для метки.
button.addActionListener(e ->{
data = textField.getText();
if((data == null) || (data.equals(""))){
return;
}else {
AnotherClass anotherClass = new AnotherClass();
anotherClass.label.setText(data);
}
});