/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Problem med JTabbedPane
Fra : SonofonoS


Dato : 23-03-04 13:58

Hej NG

Jeg har lidt problemer med et JTabbedPane. Når jeg starter applicationen
så kan man se alle de komponenter der ligger på de andre faneblade. Hvis
jeg klikker rundt i de andre faneblade, så forsvinder problemet, og alt
er som det skal være. Jeg har smidt et billede i dk.binaer - På billedet
kan man se problemet - den store "GO"-knap ligger på det sidste faneblad
"Quit". Nogen der ved hvad der kan være galt?

SonofonoS

------------------------------------

Koden kort:



Panelet som indeholder JTabbedPane

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

public class Menu extends JPanel
{
   public JTabbedPane tabbedPane;
   
   public Menu()
   {

tabbedPane = new JTabbedPane();
      
       //JPanels, med indhold. Se længere nede
      Login login = new Login();
       Quit quit = new Quit();
      
      quit.setPreferredSize(new Dimension
(Toolkit.getDefaultToolkit        ().getScreenSize()));

       //Her sættes tabs'ene ind - har prøvet med addTab også.
      tabbedPane.insertTab("Quit",null, quit,"Quit the game",0);
      tabbedPane.insertTab("Login",null,login,"Login here",0);
      
      tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
      tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
      //tabbedPane.setEnabledAt(1,false);
      
      add(tabbedPane);
      
}
}


--------------------------------------------------------------

Login-panelet som sættes ind ovenfor

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

public class Login extends JPanel
{
   private Button btLogin, btQuit, btNewPlayer;
   private JTextField tfLogin;
   private JPasswordField tfPassword;
   private JLabel jlLogin, jlPassword;
   
   public Login()
   {
      this.setLayout(null);
      
         
      jlLogin = new JLabel("Login:");
      jlPassword = new JLabel("Password:");
      btLogin = new Button("Login");
      tfLogin = new JTextField();
      tfPassword = new JPasswordField();
      btQuit = new Button("Quit");
      btNewPlayer = new Button("New player");
      
      
      jlLogin.setBounds(100,100,50,21);
      tfLogin.setBounds(95,123,100,21);
      jlPassword.setBounds(100,150,100,21);
      tfPassword.setBounds(95,173,100,21);
      btLogin.setBounds(100,210,60,23);
      btNewPlayer.setBounds(170,210,80,23);
      btQuit.setBounds(260,210,60,23);
            
      tfPassword.setEchoChar('*');
      
      add(jlLogin);
      add(tfLogin);
      add(jlPassword);
      add(tfPassword);
      add(btLogin);
      add(btNewPlayer);
      add(btQuit);
      
      //this.repaint();
   
   }

}


------------------------------------------------------------------------
Quit-panelet som indsættes


public class Quit extends JPanel
{
   private Button knap1;
   
   public Quit()
   {
      this.setLayout(null);
      
      knap1 = new Button("GO");
      knap1.setBounds(100,100,200,200);
      
      add(knap1);
   }

}

 
 
Morten K. Hansen (23-03-2004)
Kommentar
Fra : Morten K. Hansen


Dato : 23-03-04 15:01

Den 23-03-2004 13:57, skrev SonofonoS:

> Hej NG
>
> Jeg har lidt problemer med et JTabbedPane. Når jeg starter applicationen
> så kan man se alle de komponenter der ligger på de andre faneblade. Hvis
> jeg klikker rundt i de andre faneblade, så forsvinder problemet, og alt
> er som det skal være. Jeg har smidt et billede i dk.binaer - På billedet
> kan man se problemet - den store "GO"-knap ligger på det sidste faneblad
> "Quit". Nogen der ved hvad der kan være galt?
>
Du blander Swing og awt komponenter, ret alt til Swing (Du bruger
Button) og du skulle være kørendes.

--
Mvh / Regards
Morten K. Hansen   http://hansen-winkel.dk/
Replying by mail? Change 'spam' to my first name.

SonofonoS (23-03-2004)
Kommentar
Fra : SonofonoS


Dato : 23-03-04 15:11

> Du blander Swing og awt komponenter, ret alt til Swing (Du bruger
> Button) og du skulle være kørendes.
>

Jeg takker og bukker... :)

Hvordan kan det være at man "ikke må" blande dem? Nu synes jeg f.eks. at
JButtons er rigtig grimme. :) Men jeg slipper ikke kan jeg regne ud.

SonofonoS

Morten K. Hansen (23-03-2004)
Kommentar
Fra : Morten K. Hansen


Dato : 23-03-04 15:48

Den 23-03-2004 15:11, skrev SonofonoS:
>[...]
>
> Jeg takker og bukker... :)
>
Velbekomme.

> Hvordan kan det være at man "ikke må" blande dem?

Det skyldes at der er tale om to forskellige teknologier: awt
komponenter er 'Heavyweight' og Swing er 'Lightweight'. Heavywieght
tegnes af styresystemet, hvorfor de også ser ud som styresystemets
komponenter, lightweight tegnes derimod af Java.

> Nu synes jeg f.eks. at JButtons er rigtig grimme. :)

Det er jo smag og behag. Ofte har jeg indtryk af at det også er et
spørgsmål om vane.

> Men jeg slipper ikke kan jeg regne ud.
>
Jo, det kan du nu godt, så skal du sætte look and feel for
applikationen, på den måde kan du få den til at ligne en native
applikation. Det kan du se mere om her:
http://javaalmanac.com/egs/javax.swing/LookFeelNative.html?l=rel

--
Mvh / Regards
Morten K. Hansen   http://hansen-winkel.dk/
Replying by mail? Change 'spam' to my first name.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408917
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste