【发布时间】:2019-07-08 09:05:57
【问题描述】:
我已经查找了这个问题,并找到了几个线程。尝试了所有解决方案,但没有一个有帮助。我试图在放置鼠标的位置显示一个十字,我当前鼠标位置的 x 和 y 坐标应该显示在左上角和右上角。为了实现这一点,我使用了两个 JLabel。 也许我忽略了什么?
我使用了在标签中设置的标准文本、定位、框架和面板的不同布局 - 没有任何帮助。 以下代码应该足以理解,我认为如果我遗漏了一些东西会有所帮助。
Fensterkreuz(){
jl1 = new JLabel("0");
jl2 = new JLabel("0");
jl1.setSize(new Dimension(100,100));
jl2.setSize(new Dimension(100,100));
jl1.setFont(new Font ("Arial", Font.PLAIN, 15));
jl2.setFont(new Font ("Arial", Font.PLAIN, 15));
cP = new Point();
this.add(jl1);
this.add(jl2);
addMouseMotionListener(this);
}
public void mouseDragged (MouseEvent e){
}
public void mouseMoved (MouseEvent e) {
cP = e.getPoint();
repaint();
}
public void paint (Graphics g){
g.drawLine((cP.x),(cP.y-15), (cP.x),(cP.y+15));
g.drawLine((cP.x-15),(cP.y), (cP.x+15),(cP.y));
jl1.setText(String.valueOf(cP.x));
jl2.setText(String.valueOf(cP.y));
}
public static void main (String [] args) {
JFrame f = new JFrame();
JComponent test = new Fensterkreuz();
test.setOpaque(false);
f.setVisible(true);
f.setSize(1500,1000);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(test);
}
【问题讨论】:
-
您是否尝试过
setVisible()作为最后一步? -
您将标签添加到框架的什么位置?
标签: java swing jpanel jlabel paint