2015-07-25 2 views
0

Je crée un programme bloc-notes en Java et voudrais avoir des onglets différents pour chaque document ouvert. J'ai du mal à afficher les onglets. C'est mon document de test jusqu'ici que j'ai regardé ici au début et je l'ai modifié pour le document de texte. How to add a JScrollPane onto a JTabbedPane using a null layout?.Comment faire pour avoir un onglet pour un panneau de défilement avec un panneau de texte en Java

C'est ce que j'ai actuellement:

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

public class Test extends JFrame { 

    private static void CreateAndShowGui() { 

     JFrame frame = new JFrame("Program"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JTextPane txt = new JTextPane(); 
     JPanel noWrapPanel = new JPanel(new BorderLayout()); 
     noWrapPanel.add(txt); 

     JScrollPane scroll = new JScrollPane(noWrapPanel); 

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

     frame.add(topPanel); 

     JPanel panel = new JPanel(); 
     panel.setLayout(new BorderLayout()); 
     panel.add(scroll, BorderLayout.CENTER); 

     JTabbedPane tabbedPane = new JTabbedPane(); 
     tabbedPane.addTab("Welcome", panel); 
     topPanel.add(tabbedPane); 

     frame.add(scroll); 

     frame.setSize(400, 200); 
     frame.setVisible(true); 

    } 

    public static void main(String[] args) { 

     SwingUtilities.invokeLater(new Runnable() { 

      public void run() { 

       UIManager.put("swing.boldmetal", Boolean.FALSE); 
       CreateAndShowGui(); 

      } 

     }); 

    } 

} 

Qu'est-ce que je fais mal? :(

Répondre

2

vous ajoutez volet de défilement pour cadre.

frame.add(scroll); 

mais vous devez ajouter volet de défilement pour JPanel et ajouter volet pour faire défiler pane.you ont fait partie.

enlever si cette mauvaise ligne.

frame.add(scroll); 

this is complete code without using extends jframe.

this is complete code using extends jframe

note: vous avez étendu votre classe par classe jframe mais vous créez un nouveau cadre. Vous n'avez pas besoin de créer une variable frame .vous pouvez soit supprimer étend la partie ou utiliser directement votre classe en tant que jframe sans créer un nouveau cadre.

enter image description here