JTabbedPane with Keyevents

Discussion in 'Java' started by pinik.smily4u@gmail.com, Jul 28, 2008.

  1. Guest

    I have created a tabbedpane with 3 tabs (Tab1, Tab2, Tab3) . Mnemonic
    (ALT-F) is assigned only to the Tab1.

    If any of the component is selected inside the Tab2 or Tab3, it can
    still traverse back to Tab1 on pressing key ALT-F.
    But if any component is selected in the Tab1 itself, pressing ALT-F
    will not take me back to Tab1. I have to somehow get the focus for
    Tab1 too.

    Here is my code. Please respond to this.
    Thank you.

    Note: I don’t want to set Mnemonic to each Tab. Only one Mnemonic
    should do my work.




    import java.awt.BorderLayout;
    import java.awt.event.KeyEvent;

    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;


    public class myClass {

    public static void main(String args[]) throws Exception {

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

    JTabbedPane tabbedPane = new JTabbedPane();

    JButton button1= new JButton("Button1");
    JButton button2= new JButton("Button2");
    JPanel panel1 = new JPanel();
    panel1.add(button1);
    panel1.add(button2);

    tabbedPane.addTab("Tab1", null, panel1, null);

    JLabel label = new JLabel("Check ");
    JCheckBox cbox = new JCheckBox("check me");
    JPanel panel = new JPanel();
    panel.add(label, null);
    panel.add(cbox);

    tabbedPane.addTab("Tab2", null, panel, null);

    JButton button2 = new JButton("Button");
    tabbedPane.addTab("Tab3", null, button2, null);


    int mnemonic = KeyEvent.VK_F;

    tabbedPane.setMnemonicAt(tabbedPane.getSelectedIndex(), mnemonic);

    ChangeListener changeListener = new ChangeListener() {
    public void stateChanged(ChangeEvent changeEvent) {

    JTabbedPane tab = (JTabbedPane)changeEvent.getSource();
    int index = tab.getSelectedIndex();

    if(index==0)
    tab.requestFocus();

    }
    };
    tabbedPane.addChangeListener(changeListener);

    frame.add(tabbedPane, BorderLayout.CENTER);
    frame.setSize(400, 150);
    frame.setVisible(true);

    }

    }
     
    , Jul 28, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. shoa
    Replies:
    0
    Views:
    419
  2. shoa

    help for JTabbedPane

    shoa, Jul 27, 2003, in forum: Java
    Replies:
    0
    Views:
    418
  3. NEO
    Replies:
    1
    Views:
    2,995
    Babu Kalakrishnan
    Nov 11, 2003
  4. Thorsten Kiefer

    KEYEvents

    Thorsten Kiefer, Feb 19, 2007, in forum: Java
    Replies:
    0
    Views:
    384
    Thorsten Kiefer
    Feb 19, 2007
  5. Francois Lionet

    KeyEvents

    Francois Lionet, May 9, 2009, in forum: Java
    Replies:
    1
    Views:
    419
    John B. Matthews
    May 10, 2009
Loading...

Share This Page