P
pinik.smily4u
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);
}
}
(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);
}
}