painComponent(Graphics g) 本帖最后由 jqctop1 于 2011-03-10 15:32:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 额,可是JPanel类中没有paintComponent method哎 额,应该这样问,调用的是哪个父类里面的paintComponent method 是这个样子的:Swing 中, JComponent 的 paint() 方法会依次调用 paintComponent(), paintBorder(), paintChildren() 三个方法,其中paintComponent() 的作用为: 绘制组件自己本身paintBorder() 的作用为: 绘制自己的边框paintChildren() 的作用为:绘制添加到自己中的 子组件所有如果你 不调用 super.paintComponent() 只是不会绘制组件本身,也就是: 该组件本身为透明 但是,任然会有边框和加入其中的 子组件 例如:package prx.swing;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class Test extends JPanel { public Test() { this.add(new JButton("test")); this.add(new JLabel("test")); this.add(new JTextField("test")); this.setBackground(Color.BLUE); //设置背景为蓝色 this.setBorder(BorderFactory.createLineBorder(Color.red));//红色边框 this.setPreferredSize(new Dimension(300, 300)); } protected void paintComponent(Graphics g) {// super.paintComponent(g); //只会影响Test本身的绘制,不会影响边框和其他组件,取消注释将看到蓝色背景。 g.fillRect(0, 0, 100, 100); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new Test()); frame.pack(); frame.setVisible(true); }} java 打印流问题(控制台转文件输出) 小程序中播放音频的问题 刚从C++转过来的疑问和写考勤系统的疑问! 在线等,请帮我。。。。 关于static final的问题在线等 100分关于 取安装路径的问题 错误: 非法的表达式,求救。 高手大人请进!!!!! 哪里有Ant的资料?谢了先 string jquery实现分页技术 求助:安装了myeclipse,可是找不到打开的地方
额,可是JPanel类中没有paintComponent method哎
paintComponent() 的作用为: 绘制组件自己本身
paintBorder() 的作用为: 绘制自己的边框
paintChildren() 的作用为:绘制添加到自己中的 子组件所有如果你 不调用 super.paintComponent() 只是不会绘制组件本身,也就是: 该组件本身为透明
但是,任然会有边框和加入其中的 子组件 例如:package prx.swing;import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class Test extends JPanel {
public Test() {
this.add(new JButton("test"));
this.add(new JLabel("test"));
this.add(new JTextField("test"));
this.setBackground(Color.BLUE); //设置背景为蓝色
this.setBorder(BorderFactory.createLineBorder(Color.red));//红色边框
this.setPreferredSize(new Dimension(300, 300));
}
protected void paintComponent(Graphics g) {
// super.paintComponent(g); //只会影响Test本身的绘制,不会影响边框和其他组件,取消注释将看到蓝色背景。
g.fillRect(0, 0, 100, 100);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new Test());
frame.pack();
frame.setVisible(true);
}
}