使用Swing中的Paint跟踪在JPanel上绘制的字符串

时间:2014-11-01 23:39:25

标签: java swing jpanel mouselistener

所以,我有这个简单的程序,使用g2.drawString("Hello world", 40, 120)在JPanel上绘制一个字符串。基本上,我希望能够一次跟踪JPanel上的多个字符串。我不知道该怎么做。例如,我想要一个跟踪这些字符串的对象ArrayList。

我希望能够点击并拖动这些字符串,这样我就需要知道位置等。

现在,使用g2.drawString,它只绘制字符串。我想要像gw.draw(myStringObject)这样的东西。不确定这是否是一个愚蠢的请求,但这是我正在寻找的。谢谢!

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class DrawSimpleText extends JPanel {
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;

        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        Font font = new Font("Serif", Font.PLAIN, 96);
        g2.setFont(font);

        g2.drawString("Hello world", 40, 120);
    }

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.getContentPane().add(new DrawSimpleText());
        f.setSize(300, 200);
        f.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:2)

  

我希望能够点击并拖动这些字符串,这样我就需要知道位置等。

使用JLabel,然后您可以像任何组件一样拖动它们。

有关进行拖动的一种方法,请参阅Component Mover