Hallöchen,
mit meinem ersten Post in diesem Forum, hab ich gleich ein kleines und wahrscheinlich einfach zu lösendes Problem:
Ich möchte auf einem JPanel eine Komponente durch eine andere ersetzen.
Klingt einfach - dachte ich auch ...
Bei der Übergabe eines boolean, soll bei dem JPanel das JScrollPane durch das AnzeigeTestCanvas ersetzt werden.
Hier erstmal der Code (vereinfacht):
Im Verlauf des Programmes wird die Klasse neu instantiiert und mit setBooleanTestCanvas(true); die Variable übergeben.
Was nun eigentlich geschehen soll, ist dass das JScrollPane wie gesagt ersetzt werden soll.
Ich habe verschiedene Sachen ausprobiert, den Fehler habe ich aber nicht gefunden.
Ich danke schonmal im voraus für eure Hilfe
mit meinem ersten Post in diesem Forum, hab ich gleich ein kleines und wahrscheinlich einfach zu lösendes Problem:
Ich möchte auf einem JPanel eine Komponente durch eine andere ersetzen.
Klingt einfach - dachte ich auch ...
Bei der Übergabe eines boolean, soll bei dem JPanel das JScrollPane durch das AnzeigeTestCanvas ersetzt werden.
Hier erstmal der Code (vereinfacht):
Java:
public class AnzeigeJPanel extends JPanel {
private JScrollPane scrollPane;
private AnzeigeTestCanvas anzeigeTestCanvas;
private AnzeigeCanvas anzeigeCanvas;
private boolean booleanTestCanvas;
public AnzeigeJPanel() {
setLayout(new BorderLayout());
setzeCanvas(booleanTestCanvas);
}
private void setzeCanvas(boolean booleanTestCanvas) {
this.booleanTestCanvas = booleanTestCanvas;
Dimension dimensionBildschirm = Toolkit.getDefaultToolkit()
.getScreenSize();
if (booleanTestCanvas) {
if (scrollPane != null) {
System.out.println("AnzeigeCanvas wird gelöscht...");
remove(scrollPane);
validate();
}
anzeigeTestCanvas = new AnzeigeTestCanvas();
anzeigeTestCanvas.setPreferredSize(new Dimension(
(dimensionBildschirm.width - 400),
(dimensionBildschirm.height - 200)));
add(anzeigeTestCanvas, BorderLayout.CENTER);
} else {
if (anzeigeTestCanvas != null) {
System.out.println("AnzeigeTestCanvas wird gelöscht...");
remove(anzeigeTestCanvas);
validate();
}
scrollPane = new JScrollPane();
anzeigeCanvas = new AnzeigeCanvas();
scrollPane.getViewport().setView(anzeigeCanvas);
scrollPane.setPreferredSize(new Dimension(
(dimensionBildschirm.width - 400),
(dimensionBildschirm.height - 200)));
scrollPane.setMaximumSize(new Dimension(1000, 1000));
add(scrollPane, BorderLayout.CENTER);
}
}
public void setBooleanTestCanvas(boolean booleanTestCanvas) {
this.booleanTestCanvas = booleanTestCanvas;
setzeCanvas(booleanTestCanvas);
}
}
Im Verlauf des Programmes wird die Klasse neu instantiiert und mit setBooleanTestCanvas(true); die Variable übergeben.
Was nun eigentlich geschehen soll, ist dass das JScrollPane wie gesagt ersetzt werden soll.
Ich habe verschiedene Sachen ausprobiert, den Fehler habe ich aber nicht gefunden.
Ich danke schonmal im voraus für eure Hilfe