GUI怎么设置背景颜色?
代码如下:importjava.awt.*;importjavax.swing.*;publicclassBackgroundTest{publicstaticvoidm...
代码如下:
import java.awt.*;import javax.swing.*;
public class BackgroundTest {
public static void main(String[] args) { new KFrame(); }
}
class KFrame extends JFrame {
KFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗口后操作为退出程序 setSize(500, 500);// 程序窗口尺寸 setVisible(true);// 窗口显示 JPanel component = new KComponent(); add(component); component.setBackground(Color.YELLOW);//设置背景颜色(可是没有用) }
}
class KComponent extends JPanel { public void paintComponent(Graphics g) { g.drawString("King's", 150, 150);
}
}
如上,为什么我的那句component.setBackground(Color.YELLOW);想设置背景颜色为黄色,可是为什么没用?写了当没写,问题出在哪? 展开
import java.awt.*;import javax.swing.*;
public class BackgroundTest {
public static void main(String[] args) { new KFrame(); }
}
class KFrame extends JFrame {
KFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗口后操作为退出程序 setSize(500, 500);// 程序窗口尺寸 setVisible(true);// 窗口显示 JPanel component = new KComponent(); add(component); component.setBackground(Color.YELLOW);//设置背景颜色(可是没有用) }
}
class KComponent extends JPanel { public void paintComponent(Graphics g) { g.drawString("King's", 150, 150);
}
}
如上,为什么我的那句component.setBackground(Color.YELLOW);想设置背景颜色为黄色,可是为什么没用?写了当没写,问题出在哪? 展开
1个回答
2013-09-22
展开全部
因为绘制背景色的过程就是在 paintComponent()方法中实现的你把这个方法重写了,但是自己只定义了一个写文字的动作,所以调用你重写的这个paintComponent就不会重新绘制背景色了你可以把重写的部分改成下面的代码:添加一行 super.paintComponent(g); 即父类的方法也执行,执行完父类的方法(包括了绘制背景色)后再执行你自己定义的写一行文字的方法就可以了:
class KComponent extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("King's", 150, 150);
}
}
更好的方法是你干脆把你重写那个方法去掉,然后文字输出通过JLabel来添加到Component面板上而不是直接绘制的方式
class KComponent extends JPanel {
// public void paintComponent(Graphics g) {
// g.drawString("King's", 150, 150);
// }
}
class KComponent extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("King's", 150, 150);
}
}
更好的方法是你干脆把你重写那个方法去掉,然后文字输出通过JLabel来添加到Component面板上而不是直接绘制的方式
class KComponent extends JPanel {
// public void paintComponent(Graphics g) {
// g.drawString("King's", 150, 150);
// }
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |