Ahja es geht schon wie du dir das vorstellst, aber so wird das normalerweise nicht gemacht. Du brauchst die Referenz auf dein JLabel Objekt und dann kannst du auf das JLabel die Operation setText(String) machen.
Wenn du das willst, das du den Labels einen Namen gibst, musst du die Bennenung in einer Map speichern und kannst somit auf das Objekt zugreifen.
[SPOILER="KSKB"]
[code=Java]
package test;
import java.awt.GridLayout;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Test {
public static void main(String[] args) {
new Test();
}
Map<String, JLabel> labels = new HashMap<>();
public Test() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
JPanel mainPanel = new JPanel(new GridLayout(3, 1));
JPanel inputPanel = new JPanel(new GridLayout(2, 2));
JLabel labelNameDesc = new JLabel("Name of JLabel:");
JTextField labelName = new JTextField(20);
JLabel textDesc = new JLabel("Text to write:");
JTextField textField = new JTextField(20);
inputPanel.add(labelNameDesc);
inputPanel.add(labelName);
inputPanel.add(textDesc);
inputPanel.add(textField);
mainPanel.add(inputPanel);
JPanel buttonPanel = new JPanel();
JButton changeTextButton = new JButton("Change text");
changeTextButton.addActionListener((e) -> {
setLabelText(labelName.getText(), textField.getText());
});
buttonPanel.add(changeTextButton);
mainPanel.add(buttonPanel);
JPanel labelPanel = new JPanel(new GridLayout(2, 2));
String labelName1Str = "label1";
String labelName2Str = "label2";
JLabel labelName1 = new JLabel(labelName1Str);
JLabel label1 = new JLabel();
JLabel labelName2 = new JLabel(labelName2Str);
JLabel label2 = new JLabel();
labels.put(labelName1Str, label1);
labels.put(labelName2Str, label2);
labelPanel.add(labelName1);
labelPanel.add(label1);
labelPanel.add(labelName2);
labelPanel.add(label2);
mainPanel.add(labelPanel);
frame.add(mainPanel);
frame.pack();
frame.setVisible(true);
}
public void setLabelText(String labelName, String text) {
JLabel label = labels.get(labelName);
if(label != null) {
label.setText(text);
}
}
}
[/code]
[/SPOILER]