问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java swing 重绘方法,求救~~~

发布网友 发布时间:2022-05-17 08:45

我来回答

5个回答

热心网友 时间:2023-10-15 19:28

  进行界面设计的时候,有时需要设计一些特殊的按钮,如音乐播放器的原型,三角形按钮。如果Swing提供的默认按钮无法满足要求,就需要对按钮控件(JButton)进行重绘。
  Swing按钮重绘的基本原理是:创建一个继承自JButton的扩展按钮类,在其中重载paintComponent方法,这个方法用来实现控件的显示界面绘制。
  为了使的按钮可以响应鼠标移入、移出按钮等事件,还对它添加了鼠标*,这通过addMouseListener方法实现。

热心网友 时间:2023-10-15 19:29

repaint确实重新画了,但是并不会擦掉以前画的内容。
在重写的那个paint方法中第一行加上如下一句:
g.clearRect(0, 0, this.getWidth(), this.getHeight());
//把你之前画的内容删掉

repaint() 方法具有的功能仅仅就是 重新调用一次paint() 方法而已。

热心网友 时间:2023-10-15 19:29

把 JFrame 换成 Frame ,把画的方法放到一个 JLabel 的 paintComponent() 方法中即可

热心网友 时间:2023-10-15 19:30

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TankClient extends JFrame{

private static final long serialVersionUID = 1L;
private JPanel mainPanel;
private int x=50,y=50;
@Override
public void paint(Graphics g) {
super.paint(g); //背景色
Color c = g.getColor();
g.setColor(Color.red);
g.clearRect(0, 0, this.getWidth(), this.getHeight());
g.fillOval(x, y, 30, 30);
g.setColor(c);
y += 5;
}

public TankClient(){
lauchFrame();
}
public void lauchFrame(){
mainPanel = new JPanel();
mainPanel.setBackground(Color.green);
this.getContentPane().add(mainPanel);
this.setBounds(300,100,800,600);
this.setBackground(Color.BLUE);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setResizable(false);
new Thread(new PaintThread()).start();
}
public static void main(String[] args) {
new TankClient();
}
/**
* 创建一个Tread每隔相同时间进行重画,从而改变坦克位置
* @author Administrator
*/
private class PaintThread implements Runnable{
public void run() {
while(true){
repaint();//重画组件
try {
Thread.sleep(1000);//睡100ms
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}

热心网友 时间:2023-10-15 19:30

public void paint(Graphics g) {
super.paint(g); //加上这句
Color c = g.getColor();
g.setColor(Color.red);
g.fillOval(x, y, 30, 30);
g.setColor(c);
y += 5;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 老公户口迁到我家了,我们可以单独分户出来嘛? 想把户口分出来怎么办 java中swing关于timer使用 出嫁闺女户口一直在娘家,想把户分开怎么能分户? ‘求’韩国歌手swing的《对不起我爱你》可以制作QQ空间自定义背景音乐播放器下载地址 户口分开怎么分 java swing 如何添加音乐 JAVA的SWING中哪个控件可以播放音乐? java swing播放音乐文件导出后,双击运行不能播放? swing 能实现音乐播放器吗 求助:IE9缺少加载项,如何修复? 如何把照片从旧手机导入到iphone7plus 安卓系统照片如何传到苹果手机中? 对环境条件的要求有哪些? 可以同时考注册安全工程师和注册公用设备工程师吗 海尔变频空调室内的温度指示灯咋关 惠而浦 空调怎么不能关闭灯光 怎样修复IE9 形容人生梦想的古诗词 呆萌少年是什么意思呀? 我的户口迁回娘家不给分户:请问需要什么条件才可以分户? 结婚了,我想把户口从家里分出来,自己一个户口本,不是迁户口,可以吗,要怎么做啊? 嫁出去的女儿没有迁户口,户口在娘家,可以与父母户口分开单独立户吗? 需要什么条件吗 如何办理户口簿分户 分户口需要迁户口吗 求推荐一些好听的欧美歌曲!! 求大于100首很HIGH的歌。DJ也行要新的 有什么好听的嘻哈歌曲么?推荐一下 求歌~~ 好听的hiphop有谁能推荐点啊~ ~ lil bow wow演过什么电影 铟钢尺和铟瓦尺有什么区别? 点击微信我的这个界面后在这个下面出现+状态这是什么意思? 点击微信后首先出现的画面如何关闭 微信点击没反应 red velvet俄罗斯轮盘百度云下载 空调制冷一会就停机 我的qq号被人申诉更改密码了,我之前绑定了手机号也绑定了应急手机,可以通过应急手机更改密码吗?急 QQ被盗 密保全被换了 应急手机可以改密码吗 学霸们的学习计划是怎样的 不常用的没有好友怎么找回