2017-05-16 2 views
0

Größe Ich möchte ein JPanel mit FlowLayout verwenden. hinzufügen, um eine 2 AWT-Listen. Dann werde ich dieses JPanel (genannt DualListPanel) zu einem JFrame hinzufügen.Kann keine Liste in JPanel

public class DualListPanel extends JPanel{ 
    private List list1 = new List(); 
    private List list2 = new List(); 

    public DualListPanel(){ 
     list1.setSize(500, 100);//Not working 
     list2.setSize(500, 100);//No tworking 
     add(list1); 
     add(list2); 
    } 
} 

Rahmen:

public class SecondFrame extends JFrame{ 
    private DualListPanel dualList = new DualListPanel(); 

    public SecondFrame(){ 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setVisible(true); 
     add(dualList, BorderLayout.CENTER); 
     setSize(600, 250); 
    } 

    public static void main(String[] args) { 
     SecondFrame secondFrame = new SecondFrame(); 
    } 
} 

Das Problem ist, dass ich nicht eine Größe der Listen können? Mithilfe der AWT-Liste ist FlowLayout zu JPanel erforderlich.

Danke

+0

Haben Sie versucht, setPreferredSize verwenden? Standard-Layout-Manager in Java verwenden setPreferredSize, nicht setSize –

+0

Beginnen Sie, indem Sie 'java.awt.List' nicht verwenden und stattdessen eine' javax.swing.JList' verwenden. Sobald Sie das haben, können Sie ein 'GridLayout' verwenden, damit die Listen mehr Platz einnehmen und ein' JScrollPane', um einen Überlauf zu ermöglichen. – MadProgrammer

+1

Werfen Sie einen Blick auf [How to use lists] (https://docs.oracle Wie blenden Sie Fenster ein? (https://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html), [Layout Komponenten in einem Container] (https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html), [So verwenden Sie verschiedene Layout-Manager] (https://docs.oracle.com/javase/ Tutorial/uiswing/layout/layoutlist.html) und [Ein visueller Leitfaden für Layout-Manager] (https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – MadProgrammer

Antwort

1

ich ein JPanel mit Flowlayout verwenden möchten. Hinzufügen einer 2 AWT Listen

Verwenden Sie keine AWT-Liste in einer Swing-Anwendung.

Verwenden Sie stattdessen eine JList. Weitere Informationen und Arbeitsbeispiele finden Sie im Abschnitt zum Swing-Lernprogramm unter How to Use Lists.

Die Breite der Liste wird durch die Breite des größten Elements bestimmt, das der JList hinzugefügt wird. Oder Sie können dies ändern, indem Sie die Methode setPrototypeCellValue(...) verwenden.

Die Höhe wird durch die Anzahl der Elemente bestimmt, die der Liste hinzugefügt werden. Oder Sie können dies ändern, indem Sie die Methode setVisibleRowCount() verwenden.

Also ist der Punkt, versuchen Sie nicht, die Größe zu kontrollieren. Verwenden Sie die Methoden der API, um Hinweise zur JList zur Bestimmung der eigenen Größe bereitzustellen.

+0

Warum sollten wir Awt nicht in der Swing-Anwendung verwenden? Wo ist das Problem? Das FlowLayout und alle Layouts sind AWT-Objekte !! Ich sagte, dass ich AWT-Liste verwenden möchte. Warum haben Sie sich geweigert, wenn Sie dieses Problem nicht lösen können? –

+0

@MohammedAit, antwortete ich, weil ich das Problem gelöst habe. Sie sind willkommen für die Hilfe. – camickr