2014-11-01 68 views
-1

因此,我有一个简单的程序,它使用g2.drawString("Hello world", 40, 120)在JPanel上绘制一个字符串。基本上,我希望能够一次跟踪JPanel上的多个字符串。我不知道如何做到这一点。例如,我想要有一个跟踪这些字符串的对象的ArrayList。使用Paint在Swing中跟踪JPanel上绘制的字符串

我希望能够点击并拖动这些字符串,所以我需要知道有位置等

现在,使用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

-1,交叉贴:http://www.coderanch.com/t/641794/GUI/java/Keeping-track-strings-drawn-JPanel#2946878 – camickr 2014-11-02 01:53:02

+0

@peeskillet对[tag:drawstring]不幸的调用,标签。它非常具体(对.Net)。 – 2014-11-02 02:55:51

+0

@AndrewThompson对不起,没有阅读标签信息。我已经看到它之前用于挥杆,并且只是_assumed_。从来没有再次:-) – 2014-11-02 02:57:05

回答

2

我希望能够点击并拖动这些字符串,所以我需要知道有位置等

使用一个JLabel,那么你可以只需将他们像任何组件。

请参阅Component Mover一种拖动方式。