Java的Swing在界面的JPanel面板中中添加图片

Swing在界面的JPanel面板中中添加图片

需求分析
  • 在JPanel中添加图片;
  • 将绘有图片的JPanel组件添加到JFrame界面中,实现切割组件放置效果。

方法一:使用Toolkit.getDefaultToolkit().getImage(“图片路径”);获取可编辑的图片

代码示例如下:

 Image image = Toolkit.getDefaultToolkit().getImage("图片路径");
 class ImagePanel extends JPanel {
        private Image image = null;

        public void paintImage(Image image) {
            this.image = image;
            this.repaint();
        }
        @Override
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), null);
        }
    }

即就是继承JComponent类重写paint方法,自己绘制图片(实际使用中比较麻烦,如仅仅是显示图片而不做操作,不推荐使用该方式)。

方法二 :直接在JLabel中加入图片,再将JLabel加入JPanel中(推荐)

Demo:

public class Demo{
 public void setAdjustmentWindow(JPanel panel, JFrame frame)
    {
       JLabel label = new JLabel();
       label.setIcon(new ImageIcon("soure/res/leftup.png"));//文件路径
       adjustmentWindow.add(label);
    }
  }

使用该方法时,将JFrame组件及已定义并设定好在JFrame上的JPanel组件传入:

class xxx{
....(省略)
JFrame frame = new JFrame("Demo");
JPanel Panel = new JPanel();
//调用方法设置
new Demo().setGeodeticIssueWindow(Panel,frame);
frame.add(Panel);
frame.pack();
frame.setVisible(true);
fFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
}

效果

在这里插入图片描述

更多内容及免费资源,请关注:

在这里插入图片描述

  • 20
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要在Java SwingJPanel面板添加背景图片,可以通过自定义JPanel类并在其paintComponent()方法绘制背景图片来实现。以下是一个示例代码: ```java import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JPanel; public class ImagePanel extends JPanel { private Image backgroundImage; public ImagePanel(String imagePath) { this.backgroundImage = new ImageIcon(imagePath).getImage(); Dimension dimension = new Dimension(backgroundImage.getWidth(null), backgroundImage.getHeight(null)); setPreferredSize(dimension); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this); } } ``` 然后,你可以使用这个自定义的ImagePanel类作为JFrame或其他容器的一个面板,并将背景图片路径作为参数传递给它: ```java import javax.swing.JFrame; public class MainFrame extends JFrame { public MainFrame() { setTitle("Background Image Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建一个背景图片面板 ImagePanel panel = new ImagePanel("path/to/image.jpg"); // 添加其他组件到面板上 // panel.add(...); setContentPane(panel); pack(); setLocationRelativeTo(null); } public static void main(String[] args) { java.awt.EventQueue.invokeLater(() -> { new MainFrame().setVisible(true); }); } } ``` 在这个示例,你需要将"path/to/image.jpg"替换为你的实际背景图片的路径。然后,创建一个MainFrame类并设置它的内容面板为ImagePanel实例。你可以在ImagePanel上添加其他组件或进行其他自定义操作。最后,调用pack()方法将窗口调整为适当的大小,并使用setVisible(true)显示它。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值