Hallo Forum,
ich bin ziemlich neu.. nicht nur was das Forum angeht, sondern auch mit Java, also bitte nicht erschlagen wenn ich doof Frage oder komischen Code poste...
Ok, nun aber zu meinem Problem. Ich habe eine grafische Oberfläche auf der sich ein JLabel befindet, das beim Erstellen mit einem Text versehen wird. Der Text wird aus einer Variablen geholt.
Wenn ich nun einen Button anklicke, wird eine Methode ausgeführt, die diese Variable ändert.
Ich möchte dann natürlich, dass sich der Text auf dem JLabel auch ändert. Google nannte mir einige hilfreiche Dinge wie z.b. die Methode repaint(). Leider funktioniert das Ganze nicht, bzw. ich mache etwas falsch. Hier mal mein Testcode...
Ausgeführt wird die SwingTest02!
SwingTest01
SwingTest02
Ich hoffe mir kann jemand bei dem Problem helfen :/
Vielen Dank schon mal!
Gruß
seels
ich bin ziemlich neu.. nicht nur was das Forum angeht, sondern auch mit Java, also bitte nicht erschlagen wenn ich doof Frage oder komischen Code poste...
Ok, nun aber zu meinem Problem. Ich habe eine grafische Oberfläche auf der sich ein JLabel befindet, das beim Erstellen mit einem Text versehen wird. Der Text wird aus einer Variablen geholt.
Wenn ich nun einen Button anklicke, wird eine Methode ausgeführt, die diese Variable ändert.
Ich möchte dann natürlich, dass sich der Text auf dem JLabel auch ändert. Google nannte mir einige hilfreiche Dinge wie z.b. die Methode repaint(). Leider funktioniert das Ganze nicht, bzw. ich mache etwas falsch. Hier mal mein Testcode...
Ausgeführt wird die SwingTest02!
SwingTest01
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingTest01 extends JFrame
{
private static final long serialVersionUID = 1751949232181476280L;
private JPanel content;
private static JLabel text;
private JButton button;
public static void SwingLoad () {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try
{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}
catch (Exception e)
{
System.out.println("error in SwingTest01");
}
new SwingTest01();
}
// lade GUI
public SwingTest01() {
loadGUI();
this.setVisible(true);
}
// aktualisiere JLabel
public static void repaintSwing() {
text.repaint();
}
private void loadGUI()
{
content = (JPanel)this.getContentPane();
text = new JLabel("variable: " + SwingTest02.test);
button = new JButton();
// button
button.setText("Ok");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
button_actionPerformed(e);
}
}
);
// content
content.setLayout(null);
addComponent(content, text, 10, 30, 100, 28);
addComponent(content, button, 10, 70, 70, 28);
this.setTitle("SwingTest01");
this.setSize(new Dimension(300, 200));
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
private void addComponent(Container container,Component c,int x,int y,int width,int height)
{
c.setBounds(x,y,width,height);
container.add(c);
}
private void button_actionPerformed(ActionEvent e)
{
SwingTest02.setVar();
}
}
SwingTest02
Code:
public class SwingTest02 {
static String test = "erster";
public static void main(String[] args) {
SwingTest01.SwingLoad();
}
public static void setVar() {
test = "zweiter";
SwingTest01.repaintSwing();
}
}
Ich hoffe mir kann jemand bei dem Problem helfen :/
Vielen Dank schon mal!
Gruß
seels