又有一个问题,
如何响应最上面那牌tab标签的点击事件?
比如 我点击 “记录管理”,然后响应这一点击动作。
解决方案 »
- 显示图像文件问题
- 怎么定义一个方法同时显示两个构造方法的值
- 窗口重复打开问题如何解决啊?
- ava程序在调用new Socket(localIP,port)抛ConnectException,哪位高手能帮忙解决一下,急谢先
- 请问,谁有<<Java 2从入门到精通>>的教程阿?
- 郁闷,兄弟们给我看看啊!
- 请教:关于JAR文件运行的问题?
- java中函数(方法)中的参数是不是不能传回值?
- 请问怎样生成可执行文件?(在线)
- 哪种java开发工具较好?jbuilder,Vj++,kawa......
- 一个简单程序代码,请大家批批!
- Exception in thread "main" java.lang.NullPointerException
将一个 ChangeListener 添加到此选项卡窗格中。
import javax.swing.JTabbedPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;public class MyTabbedPane extends JPanel {
public MyTabbedPane() {
super(new GridLayout(1, 1));
final JTabbedPane tabbedPane = new JTabbedPane();
Component panel1 = makeTextPanel("One");
tabbedPane.addTab("One", panel1);
Component panel2 = makeTextPanel("Two");
tabbedPane.addTab("Two", panel2);
Component panel3 = makeTextPanel("Three");
tabbedPane.addTab("Three", panel3);
Component panel4 = makeTextPanel("Four");
tabbedPane.addTab("Four", panel4);
//添加鼠标监听事件
tabbedPane.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) { //响应鼠标点击事件
p(e);
}
private void p(MouseEvent e) {
for (int i = 0; i < tabbedPane.getTabCount(); i++) {
Rectangle rect = tabbedPane.getBoundsAt(i); //拿到标签的边界
if (rect.contains(e.getX(), e.getY())) { //判断是否点在边界内
System.out.println("在选项卡" + i + "上点击了鼠标!"); //响应 简单输出一句话
}
}
}
});
add(tabbedPane);
} protected Component makeTextPanel(String text) {
JPanel panel = new JPanel(false);
JLabel filler = new JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
} public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("MyFrame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new MyTabbedPane(), BorderLayout.CENTER);
frame.setSize(400, 200);
frame.setVisible(true);
}
}
...
tabbedPane.addChangeListener(new ChangeListener(){
@Override public void stateChanged(ChangeEvent e){
System.out.println(tabbedPane.getTitleAt(tabbedPane.getSelectedIndex()));
}
});