- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我按窗口左上角附近的某个位置时,由于某种原因,输出结果为 e.getY()
比 e.getX()
高约 40 。我不明白为什么...你呢?我对 e.getY()
不太清楚.
//BBDemo.java - The main program and window creation
import javax.swing.*;
public class BBDemo extends JApplet{ //this isn't Applet !
public int offset=400;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame win = new JFrame("Bouncing Ball Demo");
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setContentPane(new BBPanel());
win.pack();
win.setVisible(true);
}
}//endclass BBDemo
//BBPanel.java - The JPanel which organizes the GUI
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/////////////////////////////////////////////////////////////////// BBPanel
public class BBPanel extends JPanel {
BallInBox m_bb; // The bouncing ball panel ///in order to take the Timer->setAnimation from m_bb
Ball BallN;
//========================================================== constructor
/** Creates a panel with the controls and bouncing ball display. */
BBPanel() {
//... Create components
m_bb = new BallInBox();
BallN=new Ball(400,400,400);
JButton startButton = new JButton("Start");
JButton stopButton = new JButton("Stop");
//... Add Listeners
startButton.addActionListener(new StartAction());
stopButton.addActionListener(new StopAction());
addMouseListener(new PressBall());
//... Layout inner panel with two buttons horizontally ///why inner and outer?
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout()); ///Flow???
buttonPanel.add(startButton);
buttonPanel.add(stopButton);
//... Layout outer panel with button panel above bouncing ball ///???
this.setLayout(new BorderLayout()); ///this ??? ///Board???
this.add(buttonPanel, BorderLayout.NORTH); ///this, NORTH, ???
this.add(m_bb , BorderLayout.CENTER); ///this, CENTER, ???
}//end constructor
////////////////////////////////////// inner listener class StartAction
class StartAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_bb.setAnimation(true);
}
}
//////////////////////////////////////// inner listener class StopAction
class StopAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_bb.setAnimation(false);
}
}
public class PressBall implements MouseListener {
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
//System.out.print(BallN.m_x-BallN.getDiameter()/2+" ");
System.out.print(e.getX()+" ");
//System.out.print(BallN.m_x+BallN.getDiameter()/2+" ");
//System.out.print(BallN.m_y-BallN.getDiameter()/2+" ");
System.out.print(e.getY()+" ");
//System.out.println(BallN.m_y+BallN.getDiameter()/2+" ");
if ((e.getButton() == 1)
&& (e.getX() >= BallN.m_x-BallN.getDiameter()/2 && e.getX() <=
BallN.m_x+BallN.getDiameter()/2 && e.getY() >= BallN.m_y-BallN.getDiameter()/2 && e.getY() <=
BallN.m_y+BallN.getDiameter()/2 ))
{ m_bb.setAnimation(false);
}else{}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
}//endclass BBPanel
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
/////////////////////////////////////////////////////////////// BouncingBall
public class BallInBox extends JPanel {
//============================================== fields
public Ball m_ball = new Ball(400,400,400);
private int m_interval = 40; // Milliseconds between updates.
private Timer m_timer; // Timer fires to animate one step.
//=================================================== constructor
public BallInBox() {
setPreferredSize(new Dimension(800, 800));
setBorder(BorderFactory.createLineBorder(Color.BLACK));
m_timer = new Timer(m_interval, new TimerAction());
}
//========================================================= setAnimation
public void setAnimation(boolean turnOnOff) {
if (turnOnOff) {
m_timer.start(); // start animation by starting the timer.
} else {
m_timer.stop(); // stop timer
}
}
//======================================================= paintComponent
public void paintComponent(Graphics g) {
super.paintComponent(g); // Paint background, border
m_ball.draw(g); // Draw the ball.
// m_ball.changeColor(g);
}
class TimerAction implements ActionListener {
//================================================== actionPerformed
public void actionPerformed(ActionEvent e) {
m_ball.setBounds(getWidth(), getHeight()); ///???
m_ball.move(); // Move the ball.
repaint(); // Repaint indirectly calls paintComponent. ///why "indirectly"?
}
/* public void mousePressed(MouseEvent e) {
System.out.println("dfvsd");
if ((e.getButton() == 1)
&& (e.getX() >= 400- m_ball.m_x && e.getX() <= 400+ m_ball.m_x && e.getY() >=
400- m_ball.m_x && e.getY() <= 400+ m_ball.m_x)) {m_timer.stop();
// System.out.println("dfvsd");
}else{}
}*/
}
//////////////////////////////////////// inner listener class StopAction
}//endclass
import java.awt.*;
///////////////////////////////////////////////////////////////// BallModel
public class Ball {
//... Constants
final static int DIAMETER = 50;
//... Instance variables
static int m_x; // x and y coordinates upper left
static int m_y;
/*
private int m_velocityX; // Pixels to move each time move() is called.
private int m_velocityY;*/
private int m_rightBound; // Maximum permissible x, y values.
private int m_bottomBound;
public int i=0;
public int offset=400;
//======================================================== constructor
public Ball(int x, int y, int offset) {
m_x = x;
m_y = y;
//offset=400;
}
//======================================================== setBounds
public void setBounds(int width, int height) {
m_rightBound = width - DIAMETER;
m_bottomBound = height - DIAMETER;
}
//============================================================== move
public void move() {
double degrees=(double) i;
double radians=Math.toRadians(degrees);
double Sinu=Math.sin(radians);
double Sinu200=Math.sin(radians)*300;
int SinuInt=(int) Sinu200;
m_y=offset+SinuInt;
//z=offset-SinuInt;
double Cos=Math.cos(radians);
double Cos200=Math.cos(radians)*300;
int CosInt=(int) Cos200;
m_x=offset+CosInt;
i++; // j--;
if (i==360) i=0;
//w=offset-CosInt;
/*
//... Bounce the ball off the walls if necessary.
if (m_x < 0) { // If at or beyond left side
m_x = 0; // Place against edge and
m_velocityX = -m_velocityX; // reverse direction.
} else if (m_x > m_rightBound) { // If at or beyond right side
m_x = m_rightBound; // Place against right edge.
m_velocityX = -m_velocityX; // Reverse direction.
}
if (m_y < 0) { // if we're at top
m_y = 0;
m_velocityY = -m_velocityY;
} else if (m_y > m_bottomBound) { // if we're at bottom
m_y = m_bottomBound;
m_velocityY = -m_velocityY;
}*/
}
//============================================================== draw
public void draw(Graphics g) {
g.setColor(Color.green);
g.fillOval(m_x, m_y, DIAMETER, DIAMETER);
}
//======================================================== setPosition
public void setPosition(int x, int y) {
m_x = x;
m_y = y;
}
}
最佳答案
如果窗口被装饰,那么你必须考虑标题栏的高度。
关于java - e.getY() 返回值高于预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844861/
我正在尝试计算 WriteHTMLCell 框的高度。我想我可以使用调用 WriteHTMLCell() 前后 Y 位置之间的差异.... $start_y = $pdf->GetY(); $p
当我按窗口左上角附近的某个位置时,由于某种原因,输出结果为 e.getY()比 e.getX() 高约 40 。我不明白为什么...你呢?我对 e.getY() 不太清楚. //BBDemo.java
这是一个很长的问题。我已尽力使其更加简洁,但我认为您需要所有信息来提供帮助。 总结如下:我正在 try catch 连续点击作为端点。我将在这些点之间绘制 line2D 对象。我有一个监听器,它将点击
我在 JFrame 中嵌入了一个 JPanel。 JPanel被添加到BorderLayout的CENTER。我正在使用以下代码对其进行绘制,但 MouseEvent 的 getX() 和 getY(
我在 LibGDX 中遇到一个问题,当我调用 Gdx.input.getY() 时,它会选择一个位于应用程序相对于屏幕中心另一侧的像素。 public class Main extends Appli
好吧,我没什么可说的,但基本上我有一个 Player 类,然后在 GFX 类中我用它绘制 Player他的 getX() 和 getY() 所以 player.getX() 正如你所看到的,我制作了
这个问题在这里已经有了答案: Android ACTION_MOVE Threshold (3 个答案) 关闭 8 年前。 当读取一系列 onTouch 事件的 getX() 和 getY() 值时
我试图通过 onClickListener() 使一个 ImageView 移动到另一个 ImageView 的相同位置,我可以返回 x 但不能返回 y。 我要复制的 View 位置在 xml 中是不
GUI 组件的位置、宽度和高度何时设置?如果使用布局管理器,这些字段会受到怎样的影响?我有一个包含两个 slider 的面板,我想在其中一个 slider 旁边绘制一个矩形。下面是我的代码,用于初始化
在我解释文档时,getY()应该返回矩形的左上角 Y 坐标;即最大的Y坐标。但是,当调用 getMaxY() (继承自 RectangularShape 类)我得到了一个更大的值! 在代码中: Pat
我似乎不太了解 android View 中 getTop() 和 getY() 之间的区别。它们有何不同? 最佳答案 getTop() 返回相对于父级的 y 坐标。 getY() 像 getTop(
我正在尝试制作一个简单的应用程序,以便更好地了解如何在 Android 上使用触摸事件。现在,我的 Activity 只是将 ImageView 移动到屏幕上触摸的坐标(MotionEvent 的坐标
我需要帮助来理解以下内容。 假设我有一个 854x480 像素的显示器。为什么 MotionEvent.getX 和 getY 方法返回 float ?据我所知,显示器上的像素是离散整数,显示器上没有
有很多关于 MotionEvent.getX/.getY 如何“不可靠”(或其他术语)以及我们应该使用这些调用的原始版本来获取坐标的讨论。 在我的 Nexus 7 上,我发现 .getX/.getY
我有两个 ImageView。我想将一个移动到另一个之上。 当我尝试检索 ImageView 位置之一的值以将另一个移动到它时,我在 x 和 y 上都得到 0。 我尝试使用 getLeft/getTo
我正在编写一个基本的绘画程序,但我在 Rectangle 方面遇到了麻烦。和Ellipse工具。如果单击并拖动,您应该能够根据 startpoint 绘制尺寸的形状。和endpoint (都使用 ge
这是一项更大的家庭作业。如何使用 getX() 和 getY() 绘制一条线?这是我的代码,请帮忙。 package shapes; import java.awt.Color; import jav
我正在尝试创建一种方法来计算两个 Point 对象之间的距离: public class Point { private double x; private double y;
我有以下情况: 我有一个带有 ImageView 和 TextView 的自定义 ListView。ImageView 有一个 onTouchListener,它调用我的 onTouch 方法。以下是
本文整理了Java中us.ihmc.yoVariables.variable.YoFrameVector3D.getY()方法的一些代码示例,展示了YoFrameVector3D.getY()的具体用
我是一名优秀的程序员,十分优秀!