Java 从行中获取值
当鼠标位于正方形内时,我需要从这些(红色和蓝色)线中获取值。下图-> 我已经创建了mouseMotionListenerJava 从行中获取值,java,swing,user-interface,Java,Swing,User Interface,当鼠标位于正方形内时,我需要从这些(红色和蓝色)线中获取值。下图-> 我已经创建了mouseMotionListener public void mouseHover() { addMouseMotionListener(new MouseMotionListener() { @Override public void mouseMoved(MouseEvent e) { int x = e.getX();
public void mouseHover() {
addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if(x >= 300 && x <= 1700 && y >= 0 && y <= 800) {
System.out.println(x + " x Enter y " + y);
}
}
public void mouseHover(){
addMouseMotionListener(新的MouseMotionListener(){
@凌驾
public void mouseMoved(MouseEvent e){
int x=e.getX();
int y=e.getY();
如果(x>=300&&x=0&&y
公共组件(图形g){
超级组件(g);
g2d=(图2d)g;
g2d.drawRect(300,01700800);
scaleUnit=2;
整数maxDeath;
ArrayList maxDeathList=新ArrayList();
maxDeathList.addAll(疾病名单);
maxDeathList.addAll(死亡名单);
if(deadList.size()>0 | | sickList.size()>0){
maxDeath=Collections.max(maxDeathList);
如果(最大死亡>50){
scaleUnit=maxDeath/20;
}
}
if(deadList.size()>0){
totalDeath.setText(Integer.toString(sumalegements(deadList));
avgDeath.setText(Integer.toString(avgValue(死名单));
}
如果(sickList.size()>0){
totalSick.setText(Integer.toString(sumalegments(sickList));
avgSick.setText(Integer.toString(avgValue(sickList));
}
int startX=300;
int startY=100;
int-endX=10;
int-endY=800;
int unitX=(endX-startX)/10;
整数单位=(endY-startY)/100;
int prevX=startX;
int-prevY=endY;
int startXSick=300;
int startYSick=100;
int-endXSick=10;
int-endYSick=800;
int unitXSick=(endXSick-startXSick)/10;
int unitYSick=(endYSick-startYSick)/100;
int-prevXSick=startX;
int-prevYSick=endY;
g2d.setColor(Color.RED);
g2d.设定行程(新基本行程(2));
for(int y:死名单){
g2d.绘制线(prevX,prevY,prevX-=unitX,prevY=endY-(y*unitY)/scaleUnit);
}
g2d.setColor(Color.BLUE);
用于(int x:疾病列表){
g2d.绘制线(prevXSick,prevXSick,prevXSick-=unitXSick,
prevYSick=endYSick-(x*单元体)/缩放单元);
}
g2d.设定行程(新基本行程(1));
重新油漆();
}
我不知道如何从这一行中获得价值
public void paintComponent(Graphics g) {
super.paintComponent(g);
g2d = (Graphics2D) g;
g2d.drawRect(300, 0, 1700, 800);
scaleUnit = 2;
Integer maxDeath;
ArrayList<Integer> maxDeathList = new ArrayList<Integer>();
maxDeathList.addAll(sickList);
maxDeathList.addAll(deadList);
if (deadList.size() > 0 || sickList.size() > 0) {
maxDeath = Collections.max(maxDeathList);
if (maxDeath > 50) {
scaleUnit = maxDeath / 20;
}
}
if (deadList.size() > 0) {
totalDeath.setText(Integer.toString(sumAllElements(deadList)));
avgDeath.setText(Integer.toString(avgValue(deadList)));
}
if (sickList.size() > 0) {
totalSick.setText(Integer.toString(sumAllElements(sickList)));
avgSick.setText(Integer.toString(avgValue(sickList)));
}
int startX = 300;
int startY = 100;
int endX = 10;
int endY = 800;
int unitX = (endX - startX) / 10;
int unitY = (endY - startY) / 100;
int prevX = startX;
int prevY = endY;
int startXSick = 300;
int startYSick = 100;
int endXSick = 10;
int endYSick = 800;
int unitXSick = (endXSick - startXSick) / 10;
int unitYSick = (endYSick - startYSick) / 100;
int prevXSick = startX;
int prevYSick = endY;
g2d.setColor(Color.RED);
g2d.setStroke(new BasicStroke(2));
for (int y : deadList) {
g2d.drawLine(prevX, prevY, prevX -= unitX, prevY = endY - (y * unitY) / scaleUnit);
}
g2d.setColor(Color.BLUE);
for (int x : sickList) {
g2d.drawLine(prevXSick, prevYSick, prevXSick -= unitXSick,
prevYSick = endYSick - (x * unitYSick) / scaleUnit);
}
g2d.setStroke(new BasicStroke(1));
repaint();
}