2013-05-01 5 views
0

faire un peu d'auto-apprentissage pour une interface graphique simple pour Java. J'ai essayé de coder une interface simple. Voici le code ci-dessous:Une interface graphique simple pour Java

public void MainPanel() { 

    JFrame frame = new JFrame(); 
    frame.setTitle("Title"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JTabbedPane mpt = new JTabbedPane(); 

    mpt.addTab("Intro", new IntroPanel()); 
    mpt.addTab("Catalogue", new CataloguePanel()); 
    mpt.addTab("Order", new OrderPanel()); 
    mpt.addTab("Track", new TrackPanel()); 

    JPanel main = new JPanel(); 
    main.setBackground(Color.white); 

    JLabel label1 = new JLabel("Intro"); 

    main.add(label1); 
    frame.add(main); 
    frame.add(mpt);  
    frame.pack(); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 
} 

Le problème que je suis face actuellement est: Si je mets frame.add(main) en face de frame.add(mpt), seuls les onglets apparaissent mais l'étiquette intro. Si je mets frame.add(mpt) devant frame.add(main). Intro apparaîtra mais pas les onglets.

Pourquoi cela se produit-il? Pourquoi se chevauchent-ils? Je l'ai fait de la même manière que certains tutoriel, mais en vain.

+0

S'il vous plaît assignent une certaine hauteur à votre tabbedPane et JPanel, ceux-ci obtiennent une hauteur de 100% bydefault et se chevauchent les uns les autres afin pour le test vous pouvez leur attribuer une hauteur personnalisée pour les deux ou vous pouvez utiliser JGrid pour organiser vos composants. –

+0

Je le ferai bientôt – John

Répondre

4

Essayez de lui donner une autre mise en page.

par ex. frame.setLayout(new FlowLayout());

Info:

Selon Java Conventions de dénomination le nom de votre méthode devrait être comme public void mainPanel()

+0

J'ai fait frame.setLayout (new FlowLayout()); et la mise en page est assez moche. Je veux avoir les onglets en haut puis les mots et les informations ci-dessous. Comment puis-je atteindre ce – John

+0

et pourquoi je ne peux pas naviguer dans mes onglets? – John

+0

@John lire le tutoriel Oracle Comment utiliser BorderLayout, parce que JFrame a implémenté BorderLayout dans l'API – mKorbel

Questions connexes