Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何在图像上添加可移动的文本区域?_Java_Swing - Fatal编程技术网

在java中如何在图像上添加可移动的文本区域?

在java中如何在图像上添加可移动的文本区域?,java,swing,Java,Swing,我正在用java swing为牙医制作桌面应用程序。在我的应用程序中,我的图像是16位tiff灰度图像。我在JPanel上绘制图像。我想在myImage上添加或放置可移动文本区域。所以医生可以在图像上书写并保存它。所以当医生下次打开图像时,他/她可以很容易地理解患者的图像。下面我举一个例子 我将覆盖JPanel的绘制方法(使其将图像绘制为背景),并像往常一样向其添加JTextArea。这样,您可以创建自己的图形对象,调用paint,然后将图形对象另存为图像 public class MyPane

我正在用java swing为牙医制作桌面应用程序。在我的应用程序中,我的图像是16位tiff灰度图像。我在JPanel上绘制图像。我想在myImage上添加或放置可移动文本区域。所以医生可以在图像上书写并保存它。所以当医生下次打开图像时,他/她可以很容易地理解患者的图像。下面我举一个例子


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

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);
    }

您有几个选择:

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

  • 将@camickr的
    组件Resister
    (引用)与透明文本组件一起使用

  • 研究现有的实现,如引用的
    ImageJ
    ,或引用的
    JHotDraw

  • 使用图示的可拖动句柄开发您自己的实现


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

@Reimeus感谢您的早期回复。实际上,我的问题是,我在myapp中提供了5种测量功能,如绘制直线、曲线、形状、角度、,当doctore绘制类似于曲线的东西时,它将使用鼠标拖动的事件显示在图像上,并且在myapp的一个标签中显示线列表和曲线长度的数组。现在,doctore希望在图像中存储绘制的线条。所以我使用图像的图形对象并在图像中存储行。现在我想在牙齿图像中保存或写入字符串。所以我在想这个。我试过Jtextfield,但效果不好。“试过Jtextfield,但效果不好”贴出你最好的尝试。另请参见在图像上绘制
JLabel
标签的
LabelRenderTest
类。另请参见。@trashgod。是的,你说得对。我也有ImageJ软件。但当我按下imageJ软件的一个按钮时,我不明白如何使文本框像imageJ中那样。我在上面附上了一张图,在图中我在ImageJ中打开并按下了一个按钮,诸如此类。那么,当我在ImageJ中按下一个按钮时发生了什么,或者在ImageJ软件中它们是如何在图像上移动文本框的呢?“Swing程序应该覆盖
paintComponent()
,而不是覆盖
paint()
”。感谢分享您的知识。现在,我正试图在图像上创建最佳的可移动文本区域。