Java 从行中获取值

Java 从行中获取值,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();

当鼠标位于正方形内时,我需要从这些(红色和蓝色)线中获取值。下图->

我已经创建了mouseMotionListener

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();
}