MariusMeier
Mitglied
Hallo zusammen
Ich habe folgenden Code:
Dann have Ich das JPanel einem JScrollPane zugewiesen und zwar folgendermassen:
Nun zum Problem: Wenn der Nenner oder der Zähler sich aus einem Grund ändert, teilt das der Observer meinem JPanel mit und erstellt dabei weitere JLabels.
Wenn ich 4 JLabels habe, mit irgendwelchen Strings gefüllt, dann sieht man auf dem Bildschrim das 4te JLabel nicht mehr.... eigentlich sollte doch die ScrollPane merken dass sie jetzt eingeblendet werden muss um zum 4ten JLabel zu scrollen.... jedoch passiert nichts.... warum denn genau
MFG Marius Meier
Ich habe folgenden Code:
Code:
denomNomPanel = new ObservableJPanel();
denomNomPanel.attach(new Observer() {
public void update(Observable o, Object arg) {
IFilter filter = null;
if (arg instanceof IFilter) {
filter = (IFilter) arg;
}
denomNomPanel.setLayout(null);
for(int i=0;i<lblDenominator.size();i++) {
denomNomPanel.remove((JLabel)lblDenominator.get(i));
lblDenominator.removeElement(i);
}
int pos=10;
for(int i=0;i<filter.getSeparateDenominator().length;i++) {
System.out.println("Grösse SeparateDenominator: " + filter.getSeparateDenominator()[i]);
if(filter.getSeparateDenominator()[i] != null) {
JLabel lblDenom = new JLabel(filter.getSeparateDenominator()[i]);
lblDenom.setBounds(pos, 10, 150, 30);
denomNomPanel.add(lblDenom);
pos+=150;
lblDenominator.addElement(lblDenom);
}
}
for(int i=0;i<lblNominator.size();i++) {
denomNomPanel.remove((JLabel)lblNominator.get(i));
lblNominator.removeElement(i);
}
if(filter.getOffsetK() != 0) {
pos=150;
}
else {
pos=10;
}
for(int i=0;i<filter.getSeparateNumerator().length;i++) {
if(filter.getSeparateNumerator()[i] != null) {
JLabel lblNom = new JLabel(filter.getSeparateNumerator()[i]);
lblNom.setBounds(pos, 60, 150, 30);
denomNomPanel.add(lblNom);
pos+=150;
lblNominator.addElement(lblNom);
}
}
denomNomPanel.updateUI();
}
});
ActiveFilter.getInstance().addObserver(denomNomPanel);
Code:
JScrollPane denomNomScroll = new JScrollPane(denomNomPanel);
denomNomScroll.setBounds(70, 30, 400, 100);
this.add(denomNomScroll);
Nun zum Problem: Wenn der Nenner oder der Zähler sich aus einem Grund ändert, teilt das der Observer meinem JPanel mit und erstellt dabei weitere JLabels.
Wenn ich 4 JLabels habe, mit irgendwelchen Strings gefüllt, dann sieht man auf dem Bildschrim das 4te JLabel nicht mehr.... eigentlich sollte doch die ScrollPane merken dass sie jetzt eingeblendet werden muss um zum 4ten JLabel zu scrollen.... jedoch passiert nichts.... warum denn genau
MFG Marius Meier