public class Test {
public static void main(String args[]) {
JFrame frm = new JFrame("Test"); JTabbedPane tabPane = new JTabbedPane();
tabPane.add("Test1", new JPanel());
frm.getContentPane().add(tabPane); JButton b = new JButton("Test");
frm.getRootPane().getLayeredPane().add(b, JLayeredPane.DEFAULT_LAYER); frm.setSize(200, 120);
b.setBounds(frm.getWidth() - 60, 2, 50, 20);//这样的问题就是LayerPane的Layout是null,必须要Frame大小变化的时候,重新设置按钮的位置,建议自定义JLayerPane作为Frame的ContentPane,
frm.setVisible(true);
}
}
用这种方法,发现 切换选项卡的时候 按钮会被遮掉!!求思路解决~~
public static void main(String args[]) {
JFrame frm = new JFrame("Test"); JTabbedPane tabPane = new JTabbedPane();
tabPane.add("Test1", new JPanel());
frm.getContentPane().add(tabPane); JButton b = new JButton("Test");
frm.getRootPane().getLayeredPane().add(b, JLayeredPane.DEFAULT_LAYER); frm.setSize(200, 120);
b.setBounds(frm.getWidth() - 60, 2, 50, 20);//这样的问题就是LayerPane的Layout是null,必须要Frame大小变化的时候,重新设置按钮的位置,建议自定义JLayerPane作为Frame的ContentPane,
frm.setVisible(true);
}
}
用这种方法,发现 切换选项卡的时候 按钮会被遮掉!!求思路解决~~
正常情况下,只需在 ContentPane 中处理就可以。
目前基本上算是解决了:自定义了JTabbedPaneUI 监听了JTabbedPane的鼠标事件 然后该组件调用 repaint方法