如何在netbeans中将jpanel声明为变量,以便使用它来拖动表单?[java swing]

如何在netbeans中将jpanel声明为变量,以便使用它来拖动表单?[java swing],java,swing,netbeans,awt,Java,Swing,Netbeans,Awt,我想问一下,如何在netbeans中将jpanel声明为变量,以便使用它来拖动表单?我正在使用netbeans gui builder设计表单 (代码可以工作,但我希望它仅在单击顶部面板或“标题”时拖动表单) 我在您的代码中看不到任何JPanel,因此您的第一步是创建一个JPanel并将其添加到JFrame中,但是如果您有一个JPanel,那么就不要引用您的主菜单objectf,比如这里f.addMouseMotionListener(…和这里f.addMouseListener)(…只要用你的

我想问一下,如何在netbeans中将jpanel声明为变量,以便使用它来拖动表单?我正在使用netbeans gui builder设计表单

(代码可以工作,但我希望它仅在单击顶部面板或“标题”时拖动表单)


我在您的代码中看不到任何JPanel,因此您的第一步是创建一个JPanel并将其添加到JFrame中,但是如果您有一个JPanel,那么就不要引用您的
主菜单
object
f
,比如这里
f.addMouseMotionListener(…
和这里
f.addMouseListener)(…
只要用你的jpanel参考取代
f
你的Panel.addMouseMotionListener(新的MouseMotionAdapter(){
。我建议你读一读Rob Camick(又名:)关于这个主题的博客。Rob是StackOverflow的重要贡献者,对这个主题非常精通。
int pX, pY;

public void resizeDragJPFrame() {

    MainMenu f = new MainMenu();
    
    

    f.addMouseListener(new MouseAdapter() {

        public void mousePressed(MouseEvent me) {
            // Get x,y and store them
            pX = me.getX();
            pY = me.getY();
        }

        public void mouseDragged(MouseEvent me) {
            f.setLocation(f.getLocation().x + me.getX() - pX,
                    f.getLocation().y + me.getY() - pY);
        }
    });

    f.addMouseMotionListener(new MouseMotionAdapter() {
        public void mouseDragged(MouseEvent me) {

            f.setLocation(f.getLocation().x + me.getX() - pX,
                    f.getLocation().y + me.getY() - pY);
        }
    });

    f.setMinimumSize(new Dimension(400, 500));
    f.setMaximumSize(new Dimension(800, 600));
    f.setLocationRelativeTo(null);
    f.setVisible(true);
    f.setUndecorated(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.pack();
}


/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    Runnable runnable = new Runnable() {
        public void run() {
            new MainMenu().resizeDragJPFrame();
        }
    };
    SwingUtilities.invokeLater(runnable);
}