如何在java中的Image上添加可移动的TextArea?

时间:2012-12-14 13:40:49

标签: java swing

我正在为牙医制作桌面应用程序。在我的应用程序中,我的图像是16位tiff灰度图像。我在JPanel上绘制图像。我想在myImage上添加或放置可移动的textarea。因此,doctore可以在图像上写下并保存它。所以当doctore下次打开该图像时,他/她可以很容易地理解患者的形象。我举一个下面的图片示例。

enter image description here

2 个答案:

答案 0 :(得分:2)

您有几种选择:

  • 在可调整大小的容器中使用透明文本组件,如here所示。

  • 将{camickr的ComponentResizer引用here与透明文本组件一起使用。

  • 研究现有的实施,例如ImageJ,引用hereJHotDraw,引用here

  • 使用图示为here的可拖动手柄开发您自己的实现。

虽然后者更灵活,但我倾向于赞成组件方法以便于实现。

答案 1 :(得分:0)

我会覆盖你的JPanel的paint方法(使它将图像作为背景绘制)并像往常一样向它添加一个JTextArea。这样,您可以创建自己的Graphics对象,调用paint,然后将Graphics obj保存为图像。

public class MyPanel extends JPanel {

    JTextArea myTextArea = new JTextArea();

    public MyPanel {
        // ...
       add(myTextArea, new GridBagConstraints(....));
       // ...
    }

    @Override
    public void paint(Graphics g) {
        g.drawImage(.....);
        super.paint(g);
    }