2012-04-04 4 views
2

Ich versuche zu erstellen (handkodiert) ein GUI-Similair zu der unten gezeigten GUI, jedoch zeigt nur einen leeren Rahmen.Java GUI (SWING/AWT) - Leerer Frame - Komponenten werden nicht angezeigt

Mock GUI: enter image description here

Ich habe verschiedene Layouts und SWING/AWT-Komponenten verwendet, um die GUI und 4 JPanels zu schaffen, die enthalten:

  • Mainpanel: Enthält alle Platten drin.
  • listPanel: Enthält die JTables, JLabels und die zwei JButtons
  • infoPanel: Enthält die JLabels, JCheckBox und JTextBoxes.
  • addPanel: Enthält die JLists und JButton

Das ist, was ich bisher codiert:

import java.awt.*; 
import javax.swing.*; 
import javax.swing.JTable; 


public class GUI extends JFrame { 

    public void buildGui() { 

     JFrame frame = new JFrame("Hotel TV Scheduler"); 

       JPanel mainPanel = new JPanel(); 
     mainPanel.setLayout(new BorderLayout()); 

       JPanel listPanel = new JPanel(); 
       listPanel.setLayout(new GridLayout(3,3)); 

       JPanel infoPanel = new JPanel(); 
     infoPanel.setLayout(new GridLayout(2,2)); 

       JPanel addPanel = new JPanel(); 
     addPanel.setLayout(new FlowLayout()); 

       mainPanel.add(listPanel, BorderLayout.LINE_START); 
       mainPanel.add(infoPanel, BorderLayout.LINE_END); 
       mainPanel.add(addPanel, BorderLayout.PAGE_END); 

       JTable chOneTable = new JTable(); 
       JTable chTwoTable = new JTable(); 
       JTable listTable = new JTable(); 

       JLabel ch1Label = new JLabel("Channel 1"); 
       JLabel ch2Label = new JLabel("Channel 2"); 
       JLabel listLabel = new JLabel("List"); 

       JButton rmvChOneButton = new JButton("Remove Channel"); 
       JButton rmvChTwoButton = new JButton("Remove Channel"); 

       listPanel.add(ch1Label); 
       listPanel.add(ch2Label); 
       listPanel.add(listLabel); 
       listPanel.add(chOneTable);     
       listPanel.add(chTwoTable); 
       listPanel.add(listTable); 
       listPanel.add(rmvChOneButton); 
       listPanel.add(rmvChTwoButton); 

       JLabel titleLabel = new JLabel("Title"); 
       JLabel genreLabel = new JLabel("Genre"); 
       JLabel durationLabel = new JLabel("Duration"); 
       JLabel actorLabel = new JLabel("Actor"); 
       JLabel directorLabel = new JLabel("Director"); 
       JLabel rentableLabel = new JLabel("Rentable"); 
       JLabel synLabel = new JLabel("Synopsis"); 

       JTextField txtTitle = new JTextField();   
       JTextField txtGenre = new JTextField(); 
       JTextField txtDuration = new JTextField(); 
       JTextField txtActor = new JTextField(); 
       JTextField txtDirector = new JTextField(); 
       JTextField txtSynopsis = new JTextField(); 

       JCheckBox rentCB = new JCheckBox(); 

       infoPanel.add(titleLabel); 
       infoPanel.add(txtTitle); 
       infoPanel.add(genreLabel); 
       infoPanel.add(txtGenre); 
       infoPanel.add(durationLabel); 
       infoPanel.add(txtDuration); 
       infoPanel.add(actorLabel); 
       infoPanel.add(txtActor); 
       infoPanel.add(directorLabel); 
       infoPanel.add(txtDirector); 
       infoPanel.add(rentableLabel); 
       infoPanel.add(rentCB); 
       infoPanel.add(synLabel); 
       infoPanel.add(txtSynopsis); 

       JButton btnAddProg = new JButton("Add Program"); 

       JList channelList = new JList(); 
       JList timeList = new JList(); 

       addPanel.add(btnAddProg); 
       addPanel.add(channelList); 
       addPanel.add(timeList); 

       frame.setVisible(true); 


    } 


} 

Wer mich, warum zeigt nur ein leerer Rahmen nach oben sagen?

Danke und Grüße, Brian

+0

Auch habe ich vergessen zu erwähnen, keine Fehler angezeigt. – Brian

+0

Sie fügen MainPanel niemals dem contentPane des Frames hinzu ...? – Adam

Antwort

5

Yep gerade geprüft hat, können Sie etwas sehen werden, wenn Sie tatsächlich das Mainpanel mit dem Rahmen hinzufügen, (sieht aus wie nichts der Schein aber!)

frame.setContentPane(mainPanel); 
frame.pack(); 
+0

ahhh !! Sieht so anders aus :( – Brian

+0

Ich habe versucht, es ein wenig zu beheben .. die Listenfelder werden nicht angezeigt – Brian

3

Sie haben nicht Mainpanel am Rahmen