Ich erstelle eine GUI in die ich auf ein erweitertes JPanel ldynamisch JInternalFrames einfüge. In diesen sind ein JTextField und eine JList eingefügt. Nun füge ich Elemente in die JList im JInternalFrame hinzu. Leider werden vor und nach dem Einfügen keine ScrollBars angezeigt. Wie mache ich das am besten?
Bei der Benamung bitte an den Code Conventions orientieren. Klassenamen beginnen mit einem Grossbuchstaben, Variablennamen klein schreiben und mit einem sprechenden Namen versehen.
Warum verwendest Du für Deinen InternalFrame ein FlowLayout und belässt nicht das BorderLayout?
Die JList wird angezeigt? Die JList enthält mehr Elemente als angezeigt werden?
Das interessiert mich nun auch, vor allem weil ich nun verwirrt bin, dass du Internalframes auf ein Panel legst? Ich dachte dafür wäre das Desktoppane da...
Ich habe hier ein Testbeispiel das funktioniert, also kann es schonmal nicht per se an den Internalframes liegen:
Java:
publicfinalclassIFTest{publicstaticJInternalFramecreateSubFrame(){finalDefaultListModel<String> model =newDefaultListModel<>();finalJList<String> list =newJList<>(model);finalJTextField field =newJTextField("Eingabe",16);
field.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvent e){
model.addElement( field.getText());}});finalJInternalFrame frame =newJInternalFrame("Intern");
frame.setLayout(newFlowLayout());
frame.add(field);
frame.add(newJScrollPane(list));
frame.pack();
frame.setLocation(10,10);
frame.setVisible(true);return frame;}publicstaticvoidmain(String[] args){SwingUtilities.invokeLater(newRunnable(){@Overridepublicvoidrun(){finalJDesktopPane desk =newJDesktopPane();
desk.add(createSubFrame());finalJFrame frame =newJFrame("App");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(desk);
frame.pack();
frame.setVisible(true);}});}}
Bei der Benamung bitte an den Code Conventions orientieren. Klassenamen beginnen mit einem Grossbuchstaben, Variablennamen klein schreiben und mit einem sprechenden Namen versehen.
Frag lieber nicht, diese Schreibweisen sind vom Auftraggeber gefordert..
Die Liste ist bei Initialisierung einer Box leer und wird mittels D&D aus einer zweiten Liste gefüllt. Das Hinzufügen funktioniert auch soweit. Allerdings erscheinen halt die ScrollBars nicht, obwohl der Eintrag größer ist als die Boxabmaße.
Das Box Layout könnte ich mit Sicherheit auch verwenden.
Ein DesktopPane habe ich bis jetzt noch nicht verwendet, danke für den Hinweis werde ich mir mal genauer anschauen.
Allerdings zeichne ich Verbindungen zwischen den Boxen. Deshalb habe ich bis jetzt mit dem erweiterten JPanel gearbeitet.