JLabel x_label = new JLabel("");
x_label.setHorizontalAlignment(SwingConstants.CENTER);
x_label.addMouseListener(simple_widget);
x_label.setText(simple_widget.stringInfo);
info_panel.add(x_label);
我无法在JLabel上显示鼠标的x,y坐标。上面是我的标签,下面是鼠标小部件。 x_label.setText(simple_widget.stringInfo);似乎不能显示坐标。
private FrameView frame_view;
public String stringInfo;
public SimpleFrameViewWidget(Frame f) {
setLayout(new BorderLayout());
frame_view = new FrameView(f);
frame_view.addMouseListener(this);
add(frame_view, BorderLayout.CENTER);
JLabel title_label = new JLabel(f.getTitle());
add(title_label, BorderLayout.SOUTH);
}
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
String stringInfo = "X: " + x + "Y: " + y;
}
答案 0 :(得分:0)
您创建了一个名为stringInfo的String
,其中包含您想要的内容,但您从未使任何UI组件显示它。
创建stringInfo后,尝试让其中一个JLabel
显示如下:
someJLabelIMade.setText(stringInfo);
你还有两个stringInfo,一个局部变量和一个公共实例变量,给定你现在想要做的事情你不需要实例变量。
答案 1 :(得分:0)
此方法
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
String stringInfo = "X: " + x + "Y: " + y;
}
应该是这样的
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
stringInfo = "X: " + x + "Y: " + y;
}
您正在方法中重新声明stringInfo,因此原始stringInfo为null。 如果这不能解决你的问题,你可以发布完整的代码吗?