Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java获取滚动按钮以放大和缩小对象_Java_Scroll_Event Listener_Mouselistener - Fatal编程技术网

如何使用java获取滚动按钮以放大和缩小对象

如何使用java获取滚动按钮以放大和缩小对象,java,scroll,event-listener,mouselistener,Java,Scroll,Event Listener,Mouselistener,这里的初学者 我正在尝试使用java创建一个简单的应用程序,其中创建一个矩形,并可以使用键“w、a、s、d”移动该矩形。以及使用鼠标中的滚动按钮增加或减少矩形的大小。现在可以使用按键移动对象,但我不知道如何执行滚动功能。有人帮忙吗 import java.awt.*; import java.awt.event.*; public class Animation extends Frame implements KeyListener, MouseWheelListener { int

这里的初学者

我正在尝试使用java创建一个简单的应用程序,其中创建一个矩形,并可以使用键“w、a、s、d”移动该矩形。以及使用鼠标中的滚动按钮增加或减少矩形的大小。现在可以使用按键移动对象,但我不知道如何执行滚动功能。有人帮忙吗

import java.awt.*;
import java.awt.event.*;

public class Animation extends Frame implements KeyListener, MouseWheelListener {
    int x, y, a, b;
    char choice1;

    Animation() {
        setSize(500, 500);
        setVisible(true);
        x = 50;
        y = 50;
        a = 20;
        b = 50;
        addKeyListener(this);
        addWindowListener(new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {
            }

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }

            @Override
            public void windowClosed(WindowEvent e) {
            }

            @Override
            public void windowIconified(WindowEvent e) {
            }

            @Override
            public void windowDeiconified(WindowEvent e) {
            }

            @Override
            public void windowActivated(WindowEvent e) {
            }

            @Override
            public void windowDeactivated(WindowEvent e) {
            }
        });
    }

    @Override
    public void keyTyped(KeyEvent e) {
    }

    @Override
    public void keyPressed(KeyEvent e) {
    }

    @Override
    public void keyReleased(KeyEvent e) {
        choice1 = e.getKeyChar();
        if (choice1 == 'w') {
            y = y - 1;
        }
        if (choice1 == 's') {
            y = y + 1;
        }
        if (choice1 == 'a') {
            x = x - 1;
        }
        if (choice1 == 'd') {
            x = x + 1;
        }
        repaint();
    }

    @Override
    public void mouseWheelMoved(MouseWheelEvent e) {

    }

    public void paint(Graphics g) {
        g.drawRect(x, y, a, b);
        g.setColor(Color.red);

        g.fillRect(x, y, 20, 50);

    }

    public static void main(String[] args) {
        Animation animation = new Animation();
    }
}
具体来说,我想知道在mouseweelmoved()方法中应该写什么,以及如何使用它使矩形变大或变小


如果有人面临同样的问题,谢谢你

使用getPreciseHeelRotation()方法获取值。如果该值大于0,则滚动条正向您滚动,反之亦然。 我也在这里输入代码

 double p = e.getPreciseWheelRotation();
    if(p>0){
        a=a+5;
        b=b+5;
    } else{
        a=a-5;
        b=b-5;
    }
    repaint();

我想这个问题可能会因为过于宽泛而结束,但对于一般指针,我会先看一看,看看它有什么属性,然后再看
System.out.print
-ing一些值,并观察在进行各种输入时会发生什么。从那里你可能可以推断出你需要做什么,或者至少到了一个你的问题范围更窄的点,这样你就更有可能在这里得到好的答案。非常感谢你!我正在搜索文档,但没有找到,现在它正在工作。再次感谢你在这里添加了一个答案,特别是如果你能把你的问题缩小到更具体一点的话,以防将来对其他人有所帮助。