Hallo,
ich hätte eine Frage zum Bounded Range Model.
Habe ein Programm geschrieben, bei dem 3 Jlists nebeneinander zu sehen sind. Die sollten alle gleichzeitig scrollen. Nach ein google recherche bin ich schließlich hierauf gestoßen
http://www.java-forum.org/awt-swing-javafx-swt/77153-drei-scrollpanes-gleichzeitig-scrollen.html
Das hat auch perfekt funktioniert!! Jedoch gibt ein kleines Problem.. Und zwar wird bei mir die DRITTE JList gelegentlich ein und wieder ausgeblendet. Das heißt, mal sollen nur zwei Jlist gleichzeitig scrollen und mal alle drei gleichzeitig.
Das Programm beginnt damit, dass die ersten Zwei Listen zu sehen sind, und sie scrollen auch gleichzeitig. Wenn ich jetzt in einer Checkbox etwas auswähle wird die dritte Liste hinzugefügt. Auch hier scrollen wieder alle drei Liste gleichzeitig!
Jetzt kommt das Problem. Beim nächsten Schritt wird die Dritte List wieder ausgeblendet. Wenn das allerdings passiert, kann man gar keine Liste mehr scrollen. Meine Vermutung wäre also, dass man den Code im IF Zweig (siehe Code) wieder rückgängig machen muss(und zwar im ELSE Zweig darunter). Leider hat es bei mir nach vielen Versuchen immer noch nciht funktioniert. Hätte jemand eine Idee?
ich hätte eine Frage zum Bounded Range Model.
Habe ein Programm geschrieben, bei dem 3 Jlists nebeneinander zu sehen sind. Die sollten alle gleichzeitig scrollen. Nach ein google recherche bin ich schließlich hierauf gestoßen
http://www.java-forum.org/awt-swing-javafx-swt/77153-drei-scrollpanes-gleichzeitig-scrollen.html
Das hat auch perfekt funktioniert!! Jedoch gibt ein kleines Problem.. Und zwar wird bei mir die DRITTE JList gelegentlich ein und wieder ausgeblendet. Das heißt, mal sollen nur zwei Jlist gleichzeitig scrollen und mal alle drei gleichzeitig.
Das Programm beginnt damit, dass die ersten Zwei Listen zu sehen sind, und sie scrollen auch gleichzeitig. Wenn ich jetzt in einer Checkbox etwas auswähle wird die dritte Liste hinzugefügt. Auch hier scrollen wieder alle drei Liste gleichzeitig!
Jetzt kommt das Problem. Beim nächsten Schritt wird die Dritte List wieder ausgeblendet. Wenn das allerdings passiert, kann man gar keine Liste mehr scrollen. Meine Vermutung wäre also, dass man den Code im IF Zweig (siehe Code) wieder rückgängig machen muss(und zwar im ELSE Zweig darunter). Leider hat es bei mir nach vielen Versuchen immer noch nciht funktioniert. Hätte jemand eine Idee?
Java:
public class Eingabefenster extends JFrame {
private static BoundedRangeModel scrollModel;
private static JPanel contentPane;
public static void main(String[] args) {
contentPane = new JPanel(new GridLayout(1, 3));
scrollPaneA = new JScrollPane();
scrollPaneA.setBounds(10, 140, 50, 345);
scrollPaneA.setViewportView(listID);
scrollPaneB = new JScrollPane();
scrollPaneB.setBounds(60, 140, 285, 345);
scrollPaneB.setViewportView(listError);
scrollPaneC = new JScrollPane();
scrollPaneC.setBounds(345, 140, 285, 345);
scrollPaneC.setViewportView(listErrorEN);
contentPane.add(scrollPaneC);
contentPane.add(scrollPane);
contentPane.add(scrollPaneB);
// Hier werden die ersten beiden Listen hinzugefügt, damit sie gleichzeitig scrollen!
scrollModel = scrollPaneA.getVerticalScrollBar().getModel();
scrollPaneB.getVerticalScrollBar().setModel(scrollModel);
// und die Scrollleiste von Liste A wird unsichtbar gemacht
scrollPaneA.getVerticalScrollBar().setPreferredSize(new Dimension(0, 0));
final JFrame f = new JFrame("Fehlereingabe");
f.setContentPane(contentPane);
f.setLayout(new BorderLayout());
f.setSize(660, 535);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static class ThirdList implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
if (selB == 0){
// Hier wird die dritte Liste eingeblendet
// Die dritte Liste wird hinzugefügt, damit alle gleichzeitig scrollen!
scrollPaneC.getVerticalScrollBar().setModel(scrollModel);
// Die Scrollleiste der zweite Liste wird unsichtbar gemacht!
scrollPaneB.getVerticalScrollBar().setPreferredSize(new Dimension(0, 0));
} else {
// Wenn man hier drauf klickt(ist eine CheckBox), wird die
// dritte Liste wieder ausgeblendet!
// Die ZWEITE Scrolleiste (ScrollPaneB) soll also wieder sichtbar gemacht werden und
// ScrollPaneC soll aus dem BoundedRangeModel rausgenommen werden!
}
}
}