-2

编辑:好的,所以我现在在朋友的帮助下设法让它工作。=)


我目前正在创建一个 Java 小程序。小程序的工作原理是从用户那里获取文本输入,并在他们按下回车键时将其显示到屏幕上。这是我的程序目前正在运行的点。我想知道是否有一种方法可以让我在点击鼠标时绘制文本输入/字符串,在鼠标点击点。

非常感谢任何可以帮助我的人。:)

4

1 回答 1

3

我想知道是否有一种方法可以让我在点击鼠标时绘制文本输入/字符串,在鼠标点击点。

答:是的……

我这样回答会不会很失礼……?

这是一个相对简单的过程,具体取决于您要实现的目标...

此示例仅用于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());
            }
        }

    }

}

查看

了解更多信息。

于 2013-02-03T23:57:14.597 回答