编辑:好的,所以我现在在朋友的帮助下设法让它工作。=)
我目前正在创建一个 Java 小程序。小程序的工作原理是从用户那里获取文本输入,并在他们按下回车键时将其显示到屏幕上。这是我的程序目前正在运行的点。我想知道是否有一种方法可以让我在点击鼠标时绘制文本输入/字符串,在鼠标点击点。
非常感谢任何可以帮助我的人。:)
编辑:好的,所以我现在在朋友的帮助下设法让它工作。=)
我目前正在创建一个 Java 小程序。小程序的工作原理是从用户那里获取文本输入,并在他们按下回车键时将其显示到屏幕上。这是我的程序目前正在运行的点。我想知道是否有一种方法可以让我在点击鼠标时绘制文本输入/字符串,在鼠标点击点。
非常感谢任何可以帮助我的人。:)
我想知道是否有一种方法可以让我在点击鼠标时绘制文本输入/字符串,在鼠标点击点。
答:是的……
我这样回答会不会很失礼……?
这是一个相对简单的过程,具体取决于您要实现的目标...
此示例仅用于Graphics#drawString
将文本呈现给自定义组件。同样,您可以只在指定点的组件标签处,但这是另一个蠕虫罐头。
public class TestDrawText {
public static void main(String[] args) {
new TestDrawText();
}
public TestDrawText() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
}
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new TestPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class TestPane extends JPanel {
private Point textPoint;
public TestPane() {
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
textPoint = e.getPoint();
repaint();
}
});
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (textPoint != null) {
FontMetrics fm = g.getFontMetrics();
g.drawString("You clicked at " + textPoint.x + "x" + textPoint.y, textPoint.x, textPoint.y + fm.getAscent());
}
}
}
}
查看
了解更多信息。