Java 如何在鼠标单击时将字符串绘制到小程序屏幕?

Java 如何在鼠标单击时将字符串绘制到小程序屏幕?,java,applet,awt,java-2d,mouselistener,Java,Applet,Awt,Java 2d,Mouselistener,编辑:好的,在朋友的帮助下,我现在成功地让它工作了。=) 我目前正在创建一个Java小程序。小程序的工作原理是从用户处获取文本输入,并在用户按return键时将其显示在屏幕上。这就是我的程序目前工作的重点。 我想知道是否有一种方法可以使文本输入/字符串在鼠标点击时绘制出来 非常感谢任何能帮我解决这个问题的人。:) 我想知道是否有一种方法我可以做到这一点 单击鼠标时,在点处绘制文本输入/字符串 鼠标点击的次数 回答:是的 我把答案留作那样会不会很无礼 这是一个相对简单的过程,取决于你想要实现什么

编辑:好的,在朋友的帮助下,我现在成功地让它工作了。=)


我目前正在创建一个Java小程序。小程序的工作原理是从用户处获取文本输入,并在用户按return键时将其显示在屏幕上。这就是我的程序目前工作的重点。 我想知道是否有一种方法可以使文本输入/字符串在鼠标点击时绘制出来

非常感谢任何能帮我解决这个问题的人。:)

我想知道是否有一种方法我可以做到这一点 单击鼠标时,在点处绘制文本输入/字符串 鼠标点击的次数

回答:是的

我把答案留作那样会不会很无礼

这是一个相对简单的过程,取决于你想要实现什么

本例仅使用
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());
            }
        }

    }

}

退房


有关详细信息。

“如何在鼠标单击时将字符串绘制到小程序屏幕?”有大量鼠标单击绘制内容的示例。不过有一个技巧,首先在添加到
JFrame
JPanel中对其进行分类。只有当它工作时,才应将其添加到
JApplet
。好的,我该怎么做?“我该怎么做?”搜索?转到右上角的
搜索
框并键入“[java]鼠标”等。但我看到@MadProgrammer提供了答案。顺便说一句-不要去寻找“小程序+字符串+鼠标”。它太具体了,可以在小程序中完成的任何事情也可以在框架中完成(顺便说一句,这更容易开发和调试)。我不能使用框架,这是我必须使用小程序来完成的事情。所以添加一个答案。否则,该线程对社区没有任何价值。谢谢,但我认为applet没有主方法?它们没有,这是一个使用
JFrame
的简单示例,它更简单,更容易演示,然后再摆弄applet。哦,这是我使用applet必须做的事情。Soo?使用
TestPane
并将其添加到applet中,这没什么大不了的。技术和过程是一样的,一个转到窗口,另一个转到小程序..现在没关系,我已经设法用小程序完成了..=)