精华内容
下载资源
问答
  • 我正在尝试在JPanel上绘制图像(使用鼠标),但是这是可行的,但是当我尝试拍摄面板的屏幕截图并生成图像时,我只能看到图像背景而无需绘制鼠标.这是我生成后台Panel.java的代码@Overrideprotected void paintComponent...

    我正在尝试在JPanel上绘制图像(使用鼠标),但是这是可行的,但是当我尝试拍摄面板的屏幕截图并生成图像时,我只能看到图像背景而无需绘制鼠标.

    这是我生成后台Panel.java的代码

    @Override

    protected void paintComponent(Graphics g) {

    super.paintComponent(g);

    g.drawImage(this.createImage("/imagenes/cuerpoHumano.png").getImage(), 0, 0, null);

    }

    这是我的用铅笔在图像上绘制的代码:Panel.java

    private void formMouseDragged(java.awt.event.MouseEvent evt) {

    x = evt.getX();

    y = evt.getY();

    this.getGraphics().setColor(Color.RED);

    this.getGraphics().fillOval(x, y, 4, 4);

    }

    这是生成屏幕截图的代码

    Dimension size = panel.getSize();

    BufferedImage image = (BufferedImage) panel.createImage(size.width, size.height);

    Graphics g = image.getGraphics();

    panel.paint(g);

    g.dispose();

    try {

    String fileName = UUID.randomUUID().toString().substring(0, 18);

    ImageIO.write(image, "jpg", new File(path, fileName + ".jpg"));

    } catch (IOException e) {

    e.printStackTrace();

    }

    解决方法:

    截屏时,将调用paintComponent()方法.这意味着它只会为您绘制图像.您必须将鼠标移动存储在某些模型中,并在paintComponent()方法中绘制模型的内容.通过在鼠标移动期间在面板上调用repaint()来触发此方法.

    标签:paintcomponent,graphics,swing,jpanel,java

    来源: https://codeday.me/bug/20191127/2076499.html

    展开全文
  • 题目要求单击按钮,改变面板背景色,下面是我写的2个类,不能得到要求的结果,高手帮我改下,谢谢了类一:importjavax.swing.JFrame;importjavax.swing.JButton;importjavax.swing.JP...题目要求单击按钮,改变面板...

    题目要求单击按钮,改变面板背景色,下面是我写的2个类,不能得到要求的结果,高手帮我改下,谢谢了类一:importjavax.swing.JFrame;importjavax.swing.JButton;importjavax.swing.JP...

    题目要求单击按钮,改变面板背景色,下面是我写的2个类,不能得到要求的结果,高手帮我改下,谢谢了 类一: import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JPanel; public class Test4 extends JFrame{ Test4() { super("单击按钮,改变窗口背景颜色"); setSize(200,150); setLocation(400,300); JButton jb=new JButton("按钮"); JPanel jp=new JPanel(); jp.add(jb); add(jp); ChangeWindowColor c=new ChangeWindowColor(this); jb.addActionListener(c); } public static void main(String[] args) { Test4 f=new Test4(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } } 类二: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.Color; import java.awt.Container; public class ChangeWindowColor implements ActionListener{ Test4 f; ChangeWindowColor(Test4 f) { this.f=f; } public void actionPerformed(ActionEvent e) { Container con=new Container(); con=f.getContentPane(); con.setBackground(Color.RED); f.setTitle("change color"); } }

    展开

    展开全文
  • 不,但如果将内部面板设置为非透明(透明),则可以直接更改外部面板:inner.setOpaque(false);您可以随时使用可以使用的类而不是JPanel:class TransparentJPanel extends JPanel {{setOpaque(false);}}完整示例:...

    不,但如果将内部面板设置为非透明(透明),则可以直接更改外部面板:

    inner.setOpaque(false);您可以随时使用可以使用的类而不是JPanel:

    class TransparentJPanel extends JPanel {

    {

    setOpaque(false);

    }

    }

    完整示例:

    static class TransparentJPanel extends JPanel {{

    setOpaque(false);

    }}

    public static void main(String... args) throws Exception {

    JFrame frame = new JFrame("Test");

    final JPanel panel;

    frame.add(panel = new JPanel() {{

    add(new TransparentJPanel());

    add(new TransparentJPanel());

    add(new TransparentJPanel());

    }}, BorderLayout.CENTER);

    frame.add(new JButton(new AbstractAction("Toggle") {

    @Override

    public void actionPerformed(ActionEvent e) {

    if (panel.getBackground().equals(Color.RED))

    panel.setBackground(Color.GREEN);

    else

    panel.setBackground(Color.RED);

    }

    }), BorderLayout.SOUTH);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(400, 300);

    frame.setVisible(true);

    }

    展开全文
  • 首先,导入相关的包:import java.awt.BorderLayout;import java.awt.Container;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;也可以用:import ...

    首先,导入相关的包:

    import java.awt.BorderLayout;

    import java.awt.Container;

    import javax.swing.ImageIcon;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    也可以用:

    import java.awt.*;

    import javax.swing.*;

    接着,创建一个Java窗体对象,并设置为可见

    eg:  JFram frame = JFrame();//创建一个窗体

    frame.setVisible(true);//设置窗体可见,默认不可见

    最后编写如下代码:

    /*

    * 以下7行是给窗体添加背景图片

    */

    ImageIcon img = new ImageIcon("E:\\1"+ ".gif");//这是背景图片

    JLabel imgLabel = new JLabel(img);//将背景图放在标签里。

    frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。

    imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置

    Container cp=frame.getContentPane();

    cp.setLayout(new BorderLayout());

    ((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。

    赶快编写一个试试吧!!!

    完整代码如下:

    package 第八章;

    import java.awt.BorderLayout;

    import java.awt.Container;

    import javax.swing.ImageIcon;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    public class MyFirstFrame extends JFrame {

    /**

    * 作者:听山谷的~

    * 版本1.0

    */  private static final long serialVersionUID = 1L;

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    MyFirstFrame frame=new MyFirstFrame();

    frame.setVisible(true);//设置窗体可见,默认不可见

    /*

    * 以下7行是给窗体添加背景图片

    */

    ImageIcon img = new ImageIcon("E:\\1.gif");//这是背景图片

    JLabel imgLabel = new JLabel(img);//将背景图放在标签里。

    frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。     imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置

    Container cp=frame.getContentPane();

    cp.setLayout(new BorderLayout());

    ((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。

    }

    public MyFirstFrame(){

    super();             //继承父类构造方法   setTitle("利用JFrame类创建的窗体");

    setBounds(100,100,315,320);     //设置窗体显示位置及大小

    System.out.println(getForeground());

    getContentPane().setLayout(null);//设置为不采用任何布局管理器

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     }

    }

    展开全文
  • 首先,导入相关的包:import java.awt.BorderLayout;import java.awt.Container;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;也可以用:import ...
  • 使用玻璃面板(GlassPane)设置不透明以后,还是会把背景颜色盖住,是什么原因?怎样才能正常透明?源代码如下……请高手帮忙提下原因……importjava.awt.*;importjavax.swing.*;publ...使用玻璃面板(GlassPane)设置...
  • importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importj...
  • 自定义JPanel面板背景一、前言1.GUI全称是Graphical User Interface,就是图形用户界面。JAVA的GUI应用广泛在我们生活中也很常见。很多应用使用该GUI编程设计,像点击QQ图标弹出对应的登录窗体。一般程序与用户的...
  • 根据你的叙述,如果所有子组件都在panel中的话,就将所有的子组件都以绝对方式来添加,即先设置子组件...//背景图片大小:350*150btn=new JButton("Test",new ImageIcon("flag.jpg"));//图标按钮大小:70*40panel.s...
  • java怎样在面板中添加背景图片

    万次阅读 2017-05-14 13:11:15
    import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;
  • 基本上,通过调用AWTUtilities.setWindowOpaque(window,false)使JFrame的背景透明,我的JPopupMenu有时显示为空白.public class JavaApplication8 {JPopupMenu popup;JMenuItem open;JLabel bgLabel = new JLabel(...
  • //下面是一个关于设置颜色的透明度的例子(注意:需指定一个图片的路径)import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class Hyaline {public static void main ...
  • java编程中,图形用户界面的开发没有像delphi,VB,.net平台...许多人在设置面板背景图象时有一点障碍,我在开发java图形用户界面时也有过这种情况。其实java的JFrame中有层:最底层是JRootPane,上一层是:Jl......
  • java怎么给窗体或者面板设置背景图片

    万次阅读 多人点赞 2018-03-09 22:34:10
    JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的...
  • 我想要一个使用图像作为背景的JPanel,为此,我想向该面板添加新面板,以便它们位于该背景图像的顶部.我尝试了以下方法:Image background;public Table(){super();ImageIcon ii = new ImageIcon(this.getClass().get...
  • JFrame frame=new JFrame("添加了背景面板"); Exam9_4 panel = new Exam9_4(); frame.add(panel);//将面板添加到JFrame上 frame.setVisible(true); frame.setBounds(300, 300, 400, 500); frame....
  • JScrollPane可以设置背景...大概就是,原本只调用JScrollPane面板,所以显示如下只有一个JScrollPane面板:感觉干巴巴的想要个背景。于是在网上搜索办法可不可以给JScrollPane面板设置背景。 部分代码: final J...
  • java给窗体或面板设置背景图片

    千次阅读 2014-01-04 22:50:42
    JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的...
  • swing自带的窗体是不能够满足我们的应用需求的,所以需要制作任意图片和形状的JFrame框体,比如下图:并且可以设置窗体背景图片的透明度下面说明如何做到上图的效果:(1)首先你得需要一张好看的图片,比如羊皮纸。...
  • 我想要一个使用图像作为背景的JPanel,为此,我想向该面板添加新面板,以便它们位于该背景图像的顶部.我尝试了以下方法:Image background;public Table(){super();ImageIcon ii = new ImageIcon(this.getClass().get...
  • public void paintComponent(Graphics g){ Graphics2D g2 = (Graphics2D) g; super.paintComponent(g2);... 由于面板没图片大 所以图片只显示了一部分 哪位大神知道在这代码的基础上讲图片匹配上面板的大小
  • 它适用于Windows Sun JDK 1.6版本13和17在Ubuntu 11.04 x64上,OpenJDK 1.6.0_22和Sun JDK 1.6.0_24都失败我想要的是制作一个背景图像面板,在其上面有额外的面板(附加组件 - 例如JButtons,自定义形状等),然后绘制...
  • 由于在网上查询的方法众多,而且方法有的地方复杂化,其实不用特别.../*** 自定义背景图片,重绘JPanel面板的paintComponent(Graphics g)类*/class BackgroundPanel extends JPanel {private static final long seri...
  • ((JPanel)cp).setOpaque(false);...这样LayeredPane面板中的背景才能显示出来。frame.setSize(500,300);frame.setVisible(true);}}import java.awt.*;import javax.swing.*;import java.awt.Container;public class ...
  • JAVA中如何在Jframe面板插入背景图片

    万次阅读 多人点赞 2014-05-06 16:46:18
    ======================... 第三步,在后面的语句中加上一句,把背景面板变成透明的,  这样就成功了!!!截个成果图See see, 备注一下,这个皮卡丘头像是我用PS弄上去的,最近木有时间弄头像啦~  
  • [JAVA]①重绘JPanel面板,设置窗体背景图片

    千次阅读 多人点赞 2017-09-06 14:23:52
    由于在网上查询的方法众多,而且方法有的地方复杂化,其实不用特别复杂编写代码,只要关键点的地方写对了,就可以运行。 此写法本人整理了网上思路编写,简单明了... * 自定义背景图片,重绘JPanel面板的paintComponent
  • 下面把自己写的实例 分享一下:一个是在JFrame窗体中加如背景图片一个是在Jpanel 面板中加入背景图片都可以伸缩铺满整个屏幕,算是自己的一个小心得。public class BgSample1 extends JFrame { ImageIcon icon; //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 404
精华内容 161
关键字:

java背景面板

java 订阅