在Java中的图像上画一条线

普通rate

所以我有一个面板,其中有一个BufferedImage,我想在该图像上画一条线,将其重叠。

我尝试了以下示例,这些示例是我从google找到的,但似乎不起作用:

public class Main {
private JFrame frame = new JFrame();
private JLayeredPane lpane = new JLayeredPane();
private JPanel panel1 = new JPanel();
private JPanel panel2 = new JPanel();
public Main()
{
    frame.setPreferredSize(new Dimension(600, 400));
    frame.setLayout(new BorderLayout());
    frame.add(lpane, BorderLayout.CENTER);
    lpane.setBounds(0, 0, 600, 400);
    panel1.add(image);
    panel1.setBounds(0, 0, 600, 400);
    panel1.setOpaque(true);
    panel2.add(linedraw1);
    panel2.setBounds(200, 100, 100, 100);
    panel2.setOpaque(true);
    lpane.add(panel1, new Integer(0), 0);
    lpane.add(panel2, new Integer(1), 0);
    frame.pack();
    frame.setVisible(true);
}


/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    new Main();
}

}

下面的代码只是显示一个空白的gui,我尝试向框架中添加一个单独的面板,但是当我这样做时,只会显示新面板,而没有其他显示。有任何想法吗?

提前致谢。

蟒蛇

创建一个扩展JPanel的自定义面板。在该面板中绘制图像和线条,然后将其添加到UI中。

这是一个示例,可以帮助您入门

public class Main {
    private JFrame frame = new JFrame();
    private JLayeredPane lpane = new JLayeredPane();
    private JPanel panel1 = new MyPanel("C:\\Users\\PATH\\Pictures\\Image.png");
    private JPanel panel2 = new JPanel();
    public Main()
    {
        frame.setPreferredSize(new Dimension(600, 400));
        frame.setLayout(new BorderLayout());
        frame.add(lpane, BorderLayout.CENTER);
        lpane.setBounds(0, 0, 600, 400);
        panel1.setBounds(0, 0, 600, 400);
        panel1.setOpaque(true);
//      panel2.add(linedraw1);
        panel2.setBounds(200, 100, 100, 100);
        panel2.setOpaque(false);
        lpane.add(panel1, new Integer(0), 0);
        lpane.add(panel2, new Integer(1), 0);
        frame.pack();
        frame.setVisible(true);
    }

    // This is your custom panel
    class MyPanel extends JPanel {
        private static final long serialVersionUID = -4559408638276405147L;
        private String imageFile;

        public MyPanel(String imageFile) {
            this.imageFile = imageFile;
        }
        @Override
        protected void paintComponent(Graphics g) {
            // Add your image here
            Image img = new ImageIcon(imageFile).getImage();
            g.drawImage(img, 0, 0, this);

            //Add your lines here
            g.setColor(Color.black);
            g.drawLine(0, 0, g.getClipBounds().width, g.getClipBounds().height);
            g.setColor(Color.red);
            g.drawLine(0, g.getClipBounds().height, g.getClipBounds().width, 0);
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new Main();
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在pyplot中的图例上画一条线

来自分类Dev

如何在Java中的事件处理程序中在JLabel上画一条线?

来自分类Dev

在画布上画一条线

来自分类Dev

迅速在NSView上画一条线

来自分类Dev

在画布上画一条线

来自分类Dev

如何在画布上画一条线?

来自分类Dev

在图表上画一条线

来自分类Dev

在图像的标签上画一条线并计算距离

来自分类Dev

OpenGL:在另一条线上画一条线

来自分类Dev

在matplotlib中的3D图上画一条线

来自分类Dev

如何在Qt5中的小部件上画一条线

来自分类Dev

在matplotlib中的3D图上画一条线

来自分类Dev

如何让用户仅使用背景图像在x轴上的画布上画一条线?

来自分类Dev

如何在gmaps上画一条线和一个框?

来自分类Dev

在dgrid3d和pm3d上画一条线

来自分类Dev

如何使用Geotools在shapefile上画一条线

来自分类Dev

如何使用fabric.js在画布上画一条线

来自分类Dev

我可以在海拔高度的地图上画一条线吗?

来自分类Dev

如何使用OpenCV在路缘上画一条线?

来自分类Dev

如何在拉撒路表单上画一条线?

来自分类Dev

如何使用点在QPixmap上画一条线

来自分类Dev

我想在显示相机上画一条线(相机预览)

来自分类Dev

在时间序列图上画一条线

来自分类Dev

Java Swing,以特定角度画一条线?

来自分类Dev

Java图形(画一条线)

来自分类Dev

在Android中的ImageView上方画一条线

来自分类Dev

在精灵套件中画一条线

来自分类Dev

在WinAPI中的单词旁边画一条线

来自分类Dev

在jetpack中画一条线