Hallo zusammen,
ich habe folgendes Problem:
Ich habe 2 Panels. Das nördliche Panel besitzt einen Button, der aktiviert/deaktiviert werden muss, wenn im südlichen Panel auf dem Button geklickt werden muss.
Mein KSKB sagt mir wenig aus, wieso der Button nicht aktiviert/deaktiviert wird.
Hier der Code:
Das "nördliche" Panel mit dem Button, welcher später aktiv/deaktiv geschaltet werden soll:
Das südliche Panel mit dem Button, mit dessen Aktion der Button im nördlichen Panel aktiviert/deaktiviert werden soll:
Das Hauptframe mit den beiden Panels:
Meine Frage wäre nun, wieso der Button nicht aktiviert wird, obwohl der ActionListener durchlaufen wird. Muss das nördliche Panel aktualisiert werden? Wenn ja, wie? ???:L
ich habe folgendes Problem:
Ich habe 2 Panels. Das nördliche Panel besitzt einen Button, der aktiviert/deaktiviert werden muss, wenn im südlichen Panel auf dem Button geklickt werden muss.
Mein KSKB sagt mir wenig aus, wieso der Button nicht aktiviert/deaktiviert wird.
Hier der Code:
Das "nördliche" Panel mit dem Button, welcher später aktiv/deaktiv geschaltet werden soll:
Code:
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JPanel;
public class TestPanelNorth extends JPanel
{
final JButton testbutton = new JButton("Test");
public TestPanelNorth()
{
testbutton.setEnabled(false);
testbutton.setPreferredSize(new Dimension(100, 100));
add(testbutton);
}
public JButton getTestButton()
{
return testbutton;
}
}
Das südliche Panel mit dem Button, mit dessen Aktion der Button im nördlichen Panel aktiviert/deaktiviert werden soll:
Code:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class TestPanelSouth extends JPanel
{
private TestPanelNorth zielPanel;
JButton actionButton = new JButton("Aktion durchführen");
public TestPanelSouth(TestPanelNorth panelNorth)
{
zielPanel = panelNorth;
actionButton.setPreferredSize(new Dimension(150,100));
actionButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
if (zielPanel.getTestButton().isEnabled())
{
zielPanel.getTestButton().setEnabled(true);
}
else
{
zielPanel.getTestButton().setEnabled(false);
}
}
});
add(actionButton);
}
}
Das Hauptframe mit den beiden Panels:
Code:
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class FrameDemo {
private static void createAndShowGUI() {
TestPanelNorth panelNorth = new TestPanelNorth();
TestPanelSouth panelSouth = new TestPanelSouth(panelNorth);
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panelNorth, BorderLayout.NORTH);
frame.getContentPane().add(panelSouth, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Meine Frage wäre nun, wieso der Button nicht aktiviert wird, obwohl der ActionListener durchlaufen wird. Muss das nördliche Panel aktualisiert werden? Wenn ja, wie? ???:L