2010-08-15 6 views
0

Je crée une application de bureau dans netbeans et je veux que dans ma barre de menu si je sélectionne un nouvel élément de menu que seulement le panneau ci-dessous est changer pas plein cadre.so cela ressemblera à ce que je travaille sur un seul cadre.can quelqu'un m'aiderapplication de bureau java

+0

Pouvez-vous préciser? J'ai de la difficulté à comprendre ce que vous entendez par «en-dessous» et «en plein écran». –

Répondre

2

Vous pouvez utiliser Card Layout Managers pour réaliser une telle fonctionnalité.

Voici exemple complet:

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.*; 

class JMenuExample extends JFrame implements ActionListener { 

    JMenu menu; 
    JPanel panelMain; 
    JPanel panelRed; 
    JPanel panelBlue; 

    CardLayout layout; 

    public void createUI() { 
     createMenu(); 
     createPanels(); 

    } 

    private void createPanels() { 
     panelMain = new JPanel(); 
     layout = new CardLayout(); 
     panelMain.setLayout(layout); 

     panelRed = new JPanel(); 
     panelRed.setBackground(Color.RED); 
     panelMain.add(panelRed, "Red"); 
     panelBlue = new JPanel(); 
     panelBlue.setBackground(Color.BLUE); 
     panelMain.add(panelBlue, "Blue"); 

     add(panelMain); 

    } 

    private void createMenu() { 
     menu = new JMenu("Change To"); 
     JMenuItem miRed = new JMenuItem("Red"); 
     miRed.addActionListener(this); 
     menu.add(miRed); 
     JMenuItem miBlue = new JMenuItem("Blue"); 
     miBlue.addActionListener(this); 
     menu.add(miBlue); 

     JMenuBar bar = new JMenuBar(); 
     bar.add(menu); 

     setJMenuBar(bar); 

    } 

    public static void main(String[] args) { 

     JMenuExample frame = new JMenuExample(); 
     frame.createUI(); 
     frame.setSize(150, 200); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 

    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     if (e.getSource() instanceof JMenuItem) { 
      JMenuItem mi = (JMenuItem) e.getSource(); 
      layout.show(panelMain, mi.getText()); 

     } 
    } 
} 

Hope this helps

Questions connexes