0 0

swing组件重绘背景问题5

下面的方法是继承JPANEL的自定义类中的方法,是可以实现组件第一次预览时出现背景图片。
//重写父类继承来的方法paintComponent
public void paintComponent(Graphics g){
    super.paintComponent(g);
    if(null!=bground){
       paintBackGroundIcon(g);
    }
}
//画背景的方法
public void paintBackGroundIcon(Graphics g){
    g.setColor(Color.BLACK);
    g.fillRect(0,0,getWidth(),getHeight());
    ImageIcon icon=(ImageIcon)bground;
    Image image=icon.getImage();
    int pw=this.getWidth();
    int ph=this.getHeight();
    int iw=image.getWidth(this);
    int ih=image.getHeight(this);
    int x=0,y=0;
    while(y<ph){
        g.drawImage(image,x,y,this);
        x+=iw;
        if(x>pw){
	    x=0;
	    y+=ih;
	 }
     }
}

问题是,当我希望在窗体运行的时候,可以选择更换背景图片,再调用该jpanel对象的repaint()重绘方法时窗体会卡住,
不能重新绘制新的图片背景,问题是出现在哪里?请大牛们指点,谢谢!
2011年12月24日 12:04
目前还没有答案

相关推荐

    重绘CheckBox资料

    在IT行业中,重绘Checkbox(复选框)通常是指自定义UI组件,即根据特定需求对标准的系统提供的Checkbox控件进行外观和行为的修改。这涉及到Android或Java GUI编程,因为这两个平台广泛使用Checkbox这样的组件。在此...

    JAVA中的控件重绘

    首先,`JAVA中的控件重绘`意味着我们要关注Java AWT(Abstract Window Toolkit)和Swing库中的组件渲染机制。这些库提供了丰富的GUI组件,如按钮、文本框、菜单等,它们都有内置的绘制逻辑。当组件的状态发生改变,...

    按钮,列表框重绘.按钮,列表框重绘

    在编程领域,特别是GUI(图形用户界面)设计中,按钮和列表框的重绘是两个重要的概念。这些组件是用户与应用程序交互的主要方式,因此它们的外观和行为必须符合用户的期望,并能根据需要动态更新。下面我们将深入...

    swing重绘按钮为任意形状图案的方法

    Swing重绘按钮为任意形状图案的方法 Swing是Java语言中一个强大的图形用户界面工具包,它提供了丰富的GUI组件和布局管理器,能够帮助开发者快速构建复杂的图形用户界面。然而,Swing自带的Metal按钮风格并不是很...

    Swing三个漂亮实例

    在本文中,我们将深入探讨Swing的三个精彩实例:打造半透明Swing组件、淡入淡出效果以及模拟下雪的透明面板。 1. 打造半透明Swing组件: 在Swing中,可以通过设置组件的Alpha值来实现半透明效果。`setOpaque(false...

    Java Swing实现窗体添加背景图片的2种方法详解

    本文将详细介绍两种在Java Swing中实现窗体添加背景图片的方法,并探讨Swing重绘过程中的`repaint()`和`updateUI()`的区别。 方法一:利用JLabel加载图片 此方法依赖于JLabel组件的`setIcon(Icon icon)`方法来加载...

    swing 动态加载曲线图

    // 更新数据并重绘的定时器 Timer timer = new Timer(1000, e -&gt; { // 更新数据... chart.repaint(); // 重新绘制 }); timer.start(); frame.setVisible(true); } } ``` 在这个例子中,我们创建了一个...

    java swing 毛玻璃实现

    一种常见的优化方法是只在窗口大小改变或背景改变时才重新模糊背景,而不是每次重绘时都进行。 总的来说,Java Swing通过自定义绘图和使用Graphics2D类,结合模糊滤镜,可以实现具有现代感的毛玻璃效果。这不仅增强...

    Swing换肤——JavaSE技术

    5. **考虑性能**:由于更换LookAndFeel涉及到组件的重绘,因此在大量组件的应用中,这可能会影响性能。在应用启动时进行换肤通常比在运行时更改更为合适。 Graphics2D在Swing换肤中起到辅助作用,它是Java2D API的...

    令Swing风格更加美化的插件

    这通常需要继承相应的Swing组件,并重绘其图形部分。 3. **图标与图像**:使用高质量的图标和背景图片可以显著提升应用的视觉效果。这些图片可以设置为窗口、菜单项、按钮等元素的图标,或是作为界面的背景。 4. *...

    Java Swing画图小练习

    在这个“Java Swing画图小练习”中,我们将探讨如何使用Swing组件来实现交互式的图形绘制,特别是涉及鼠标移动事件监听以及动态效果的实现。 首先,Swing 提供了 `JFrame` 类作为应用程序的主窗口,我们可以在这个...

    Java_Swing_with_Samples.pdf

    Swing组件必须在事件分派线程(Event Dispatch Thread, EDT)中更新UI,以确保UI响应性和一致性。 **示例**:使用`SwingUtilities.invokeLater`方法来确保代码在EDT中执行: ```java SwingUtilities.invokeLater(new ...

    Swing 实现透明窗体

    5. **重绘策略**:透明窗口可能需要额外的重绘管理,因为部分组件可能需要在透明背景下正确显示。这可能涉及到`paintComponent()`方法的重写以及`repaint()`的调用。 6. **JNA库**:在描述中提到了“jna”,Java ...

    swing 植物大战僵尸

    例如,僵尸的移动可以通过在每次重绘时改变其位置来实现。 4. **用户交互**:Swing的事件处理机制是通过事件适配器(EventAdapter)和事件监听器来实现的。例如,我们可以为种植植物的按钮添加ActionListener,当...

    java swing 飞机大战

    在飞机大战游戏中,我们可以看到各种Swing组件的运用,如JFrame作为游戏的主要窗口,可能还有JButton用于开始、暂停或结束游戏,以及JLabel显示分数和状态信息等。 游戏的核心部分通常涉及到事件处理。在Swing中,...

    swing右下角出现渐隐渐显的提示框.

    然后,我们需要覆盖`paintComponent()`方法,通过重绘组件来实现渐隐渐显的效果。这通常涉及到透明度的变化,可以通过修改组件的背景色的alpha值来实现。 2. **动画逻辑**: 在Java中,可以使用`javax.swing.Timer`...

    练练看小游戏SWING的实现

    在游戏逻辑方面,开发者可能使用了定时器(Timer类)来实现帧率控制,通过定期更新游戏状态并重绘屏幕来实现动态效果。例如,`javax.swing.Timer`可以在指定间隔内重复执行一个任务,非常适合控制游戏的动画速度。 ...

    Java Swing飞机大战小游戏.zip

    1. 轻量级:Swing组件是基于Java语言实现的,不依赖于操作系统提供的GUI组件,因此具有良好的跨平台性。 2. 可定制性:Swing提供了许多预定义的外观和感觉(LookAndFeel),可以轻松更改应用程序的视觉风格。 3. ...

    跟我学JavaSwing之游戏设计共8页.pdf.zip

    - 渲染优化:避免不必要的绘制操作,如只重绘改变的部分。 学习这个教程,你将掌握如何使用Java Swing开发游戏的基本技能,包括设计用户界面、处理用户输入、实现游戏逻辑、优化性能等。通过实际的项目练习,你...

    Java Swing

    7. **动画**:为了实现动态效果,如方块下落,需要定时器(javax.swing.Timer)来定期更新游戏状态并重绘界面。 8. **游戏逻辑**:这涉及到如何生成新块、判断碰撞、消除行以及游戏结束条件等。这部分通常是游戏...

Global site tag (gtag.js) - Google Analytics