public class AAA extends JFrame{
public AAA(){
JButton j1=new JButton("12");
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
add(j1);
j1.setLocation(this.getSize().width-150,100);
j1.setSize(100,20);
// j1.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent e) {
// AAA.this.repaint();
// }
// });
setVisible(true);
}
public static void main(String[] args) {
new AAA();
}
}
这是个测试代码。我的想法是,控件位置写成相对的,然后改变窗口大小时,窗口不会出现空白或者控件消失。但是系统就是不调用repaint方法。注释的代码是我写的强制调用,都不行。这该怎么办呢?
public AAA(){
JButton j1=new JButton("12");
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
add(j1);
j1.setLocation(this.getSize().width-150,100);
j1.setSize(100,20);
// j1.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent e) {
// AAA.this.repaint();
// }
// });
setVisible(true);
}
public static void main(String[] args) {
new AAA();
}
}
这是个测试代码。我的想法是,控件位置写成相对的,然后改变窗口大小时,窗口不会出现空白或者控件消失。但是系统就是不调用repaint方法。注释的代码是我写的强制调用,都不行。这该怎么办呢?
解决方案 »
- 关于在MAP里面做合计的问题
- 求教一个窗口最大化有点灵异的问题
- 【求助】JAVA 为什么我Applet里的音频没有声音?
- 级联关系查询怎么解决HIBERNATE SESSION关闭
- 内网多人聊天程序
- 关于文本变换颜色的问题
- 求助,急用
- overriding and overloading
- 利用BigInteger类计算 ,要求正确的输出计算结果 那不对呢?怎么改呢?
- to 路人甲 :我找了半天也没在jdk的src中找到javac的类啊(sun.tools.javac),你知道在那里吗?
- 散分!每人5分,送完为止!——如何解决在Eclipes里无法使用com.sun.awt包的问题。
- 重写paint()方法后Frame背景图片不显示
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;public class AAA extends JFrame {
public AAA(){
JButton j1=new JButton("12");
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,300);
add(j1);
j1.setLocation(this.getSize().width-150,100);
j1.setSize(100,20);
j1.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
AAA.this.repaint();
}
});
setVisible(true);
} @Override
public void paint(Graphics g) {
super.paint(g); //To change body of overridden methods use File | Settings | File Templates.
System.out.println("repaint");
}
public static void main(String[] args) {
new AAA();
}
}
但是不清楚你想要干啥
@Override
public void paint(Graphics g) {
super.paint(g);
j1.setLocation(this.getSize().width-150,100);
System.out.println("repaint");
}
这样就好了。还是谢谢ioe_gaoyong提供的思路。