制作一个装饰,tabbedpane移动

时间:2015-03-07 14:10:12

标签: java swing frame jtabbedpane movable

我正在为学校制作一个项目并遇到一些问题。我使用了setUndecorated的框架,并添加了代码以使其可移动:Making a java swing frame movable and setUndecorated

除了我正在使用tabbedpane的一帧外,它工作正常。

这是一张更好地解释它的图片: http://gyazo.com/6cea08f42347841a3846bdfffe9e3d71

这是我制作tappedpane的代码:

    public Main() {

            icon = new ImageIcon(getClass().getResource("usericon.png"));
            icon2 = new ImageIcon(getClass().getResource("aboicon.png"));
            icon3 = new ImageIcon(getClass().getResource("iconcoin.png"));
            icon4 = new ImageIcon(getClass().getResource("icongewicht2.png"));

    JTabbedPane jtbExample = new JTabbedPane();
    JPanel Paneel1 = new Paneel1();                
    jtbExample.addTab("Klanten",icon , Paneel1);

    jtbExample.setSelectedIndex(0);

    JPanel Paneel2 = new Paneel2();
    jtbExample.addTab("Abonnement",icon2, Paneel2);

    JPanel Paneel3 = new Paneel3();
    jtbExample.addTab("Geld opladen",icon3, Paneel3);

    JPanel Paneel4 = new Paneel4();
    jtbExample.addTab("Schema's",icon4, Paneel4);

    // Add the tabbed pane to this panel.
    setLayout(new BorderLayout());
    add(jtbExample);

}


}

提前致谢

1 个答案:

答案 0 :(得分:1)

您将鼠标监听器添加到JPanel,在您的情况下,它与JTabbedPane重叠。因此,您必须将Mouse-Listeners添加到JTabbedPane。 只需将f.addMouse(Motion)Listener替换为jtbExample.addMouse(Motion)Listener

    jtbExample.addMouseListener(new MouseListener(){
        public void mouseReleased(MouseEvent e) {
            mouseDownCompCoords = null;
        }
        public void mousePressed(MouseEvent e) {
            mouseDownCompCoords = e.getPoint();
        }
        public void mouseExited(MouseEvent e) {
        }
        public void mouseEntered(MouseEvent e) {
        }
        public void mouseClicked(MouseEvent e) {
        }
    });

    jtbExample.addMouseMotionListener(new MouseMotionListener(){
        public void mouseMoved(MouseEvent e) {
        }

        public void mouseDragged(MouseEvent e) {
            Point currCoords = e.getLocationOnScreen();
            f.setLocation(currCoords.x - mouseDownCompCoords.x, currCoords.y - mouseDownCompCoords.y);
        }
    });
相关问题