Avatar billede dennism Nybegynder
15. oktober 2006 - 20:31 Der er 3 kommentarer og
1 løsning

Java: JTabbedPane

Jeg har forsøgt at lave et lille eksempel med et JTabbedPane - koden ses nederst.

Jeg har lavet to tabs, og forsøger at tilføje et panel (pane) til tab1. pane indeholder et label, men dette label ses ikke, når tabbet er valgt. Nogen der kan fortælle mig hvorfor? Jeg har det bedst med SpringLayout, så håber det kan lade sig gøre, at indholdet i tab1 og tab2 er af den type.

Jeg har kigget på diverse eksempler i API'en, men synes ikke jeg kan få det til at fungere.


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

public class Main {
   
    public static void run() {
        JPanel tab1 = new JPanel();
        JPanel tab2 = new JPanel();
       
        JPanel pane = new JPanel();
        SpringLayout layout = new SpringLayout();
        pane.setLayout(layout);
        JLabel lMessage = new JLabel("An example");
        pane.add(lMessage);
        tab1.add(pane);
       
        JFrame frame = new JFrame("TabbedPaneDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        JTabbedPane tabbedPane = new JTabbedPane();
        ImageIcon icon = new ImageIcon("images/middle.gif");     
       
        tabbedPane.addTab("Tab 1", icon, tab1,"Does nothing");
        tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
        tabbedPane.addTab("Tab 2", icon, tab2,"Does twice as much nothing");
        tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
       
        frame.getContentPane().add(tabbedPane,BorderLayout.CENTER);
        frame.pack();
        frame.setSize(200,200);
        frame.setVisible(true);
       
    }
   
    public static void main(String[] args) {
        run();       
    }
   
}
Avatar billede mikkelbm Nybegynder
15. oktober 2006 - 21:01 #1
Umiddelbart er der ikke noget i vejen med din kode. Prøv at udkommentér:

pane.setLayout(layout);

Og du vil se din label.

Altså:

Fejlen er, at du bruger springlayout forkert. Du kan bruge alle former for layouts da det jo bare er dit panel der vises.
Avatar billede mikkelbm Nybegynder
15. oktober 2006 - 21:03 #2
Det er mig der vrøvler. Fejlen er at du har flowlayout på din tab1 og tab2

Prøv:

JPanel tab1 = new JPanel(new BorderLayout());
JPanel tab2 = new JPanel(new BorderLayout());
Avatar billede dennism Nybegynder
16. oktober 2006 - 12:52 #3
Tak. Smider du lige et svar?
Avatar billede mikkelbm Nybegynder
16. oktober 2006 - 13:01 #4
Kommer her...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester