SHifTER Geschrieben 29. August 2002 Geschrieben 29. August 2002 Ich habe folgende JList in einer großen GUI. Ich möchte gerne eine JScrollPane und einen JButton der JList hinzufügen, aber es klappt zum verrecken nicht. In einem neuen Frame ist es kein Problem, nur im haupt-fenster klappt es nicht. Liegt wohl an der ContentPane. Aber wie krieg ich die beiden Dinge in die JList?? { public static JList jList1; //private JPanel jPanel1 = new JPanel(); //private XYLayout xYLayout2 = new XYLayout(); public void setJLabel() { TagLabel.setText(maincommander.jListInfo[0][0]); jList1 = new JList(maincommander.jListInfo[0]); jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } } Zitieren
Habi Geschrieben 30. August 2002 Geschrieben 30. August 2002 Du weist schon, dass eine JList kein Fenster (JFrmae, JDialog) ist? Eine JList ist eine Auswahlbox! In die kannst du nicht einfach einen Button oder Scollfeld einfügen! Dein Fenster ist entweder ein JFrame oder JDialog. Dort kannst du einen Button dazufügen, du kannst auch ein Scrollfeld hinzufügen. Diesem Scrollfeld wird dann eine bspw. eine JList zugeordnet. Dann hast du ein Fenster mit Button und Listenfeld. Hoffe das hilft dir weiter. Ich würde mir an deinser Stelle einfach mal ein Tutorial über AWT/Swing reinzerren! Grüßle Zitieren
javaanfänger Geschrieben 30. August 2002 Geschrieben 30. August 2002 Habi, das geht schau. Schau dir mal das Beispiel an: http://www2.gol.com/users/tame/swing/examples/JListExamples1.html Zitieren
Habi Geschrieben 30. August 2002 Geschrieben 30. August 2002 Wenn du dir das Beispiel anschaust, wirst du feststellen, dass das ein JFrame ist, in den zwei Buttons eingefügt wurden (dem Frame! nicht der JList!). Der Frame hat dann noch eine Textarea und ein Scollpanel, dem eine JLIst zugefügt wurde. Also genau wie ichs oben beschrieben habe. Das man einer JList einen Renderer bauen kann, die Checkboxen oder sonstiges aufnimmt, steht ausser Frage, ,allerdings war das glaub ich nicht das Ziel dieses Threads, oder? Zitieren
SHifTER Geschrieben 30. August 2002 Autor Geschrieben 30. August 2002 Ist mir schon bewußt. Die JScrollPane hab ich auch 5min nach erstellung des Threads hinbekommen. Und ein Button in eine JList einfügen, geht auch, was nachfolgender Code zeigt. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Listing3710 extends JFrame implements ActionListener { static final String[] DATA = { "Hund", "Katze", "Meerschweinchen", "Tiger", "Maus", "Fisch", "Leopard", "Schimpanse", "Kuh", "Pferd", "Reh", "Huhn", "Marder", "Adler", "Nilpferd" }; private JList list; public Listing3710() { super("JList"); addWindowListener(new WindowClosingAdapter(true)); Container cp = getContentPane(); //Liste list = new JList(DATA); list.setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ); list.setSelectedIndex(2); cp.add(new JScrollPane(list), BorderLayout.CENTER); //Ausgabe-Button JButton button = new JButton("Ausgabe"); button.addActionListener(this); cp.add(button, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent event) { String cmd = event.getActionCommand(); if (cmd.equals("Ausgabe")) { System.out.println("---"); ListModel lm = list.getModel(); int[] sel = list.getSelectedIndices(); for (int i = 0; i < sel.length; ++i) { String value = (String)lm.getElementAt(sel[i]); System.out.println(" " + value); } } } public static void main(String[] args) { Listing3710 frame = new Listing3710(); frame.setLocation(100, 100); frame.setSize(200, 200); frame.setVisible(true); } }[/PHP] Der JList wird das Array 'DATA' übergeben, JScrollPane & JButton hinzugefügt und in neuem Frame geöffnet. Danke für eure Hilfe. Gruß, SHifTER Zitieren
Habi Geschrieben 30. August 2002 Geschrieben 30. August 2002 Wieder das was ich schon 2 mal erzählt habe Der Button wird nicht (!!!) der JList hinzugefügt, sondern deiner contentPane! contentPane != JList. Ebenso wird die Scrollpane nicht der JList hinzugefügt, sondern umgekehrt. Aber es funktioniert ja, da will ich mich nicht über Begrifflichkeiten streiten. Ich denke für diech ist wichtig, dass dus zum Laufen bekommen hast. Allerdings würd ich mir die Sache irgendwann nochmal in Ruhe anschauen... Zitieren
SHifTER Geschrieben 30. August 2002 Autor Geschrieben 30. August 2002 Ja, also dass die JList in die JScrollPane kommt, weiß ich jetzt (auch irgendwie logisch). Das Problem mit dem JButton lag an der ContentPane, jetzt habe ich auf die RootPane ne neue ContentPane gelegt und die zeigt jetzt den Button an. Danke für deine Hilfe. Und in Ruhe kann ich mir die Sachen ansehen, wenn ich keinen Zeit- bzw. Termin-druck mehr habe. Aber das Programm muss ja fertig werden..... Gruß, SHifTER Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.