public class test1 extends JFrame{
/**
*
*/
Graphics gh;
JPanel pane=new JPanel();
graphics_str gs=new graphics_str();public test1(){
setTitle("game");
setBounds(200,200,300,300);
getContentPane().add(gs);
setContentPane(pane);
setDefaultCloseOperation(this.EXIT_ON_CLOSE);
}public static void main(String arg[]){
test1 tt=new test1();
tt.setVisible(true);
}
}class graphics_str extends JPanel{
Font font = new Font("宋体",Font.ITALIC+Font.BOLD,24);
Color color = Color.BLUE;
public void paintComponent(Graphics comp){
comp.setFont(font);
comp.setColor(color);
comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd",50,50);
}
}
为什么graphics打印不出来东西呢?请高手解决下并告诉我为什么,就在我的代码基础上改,小弟深表感谢~
/**
*
*/
Graphics gh;
JPanel pane=new JPanel();
graphics_str gs=new graphics_str();public test1(){
setTitle("game");
setBounds(200,200,300,300);
getContentPane().add(gs);
setContentPane(pane);
setDefaultCloseOperation(this.EXIT_ON_CLOSE);
}public static void main(String arg[]){
test1 tt=new test1();
tt.setVisible(true);
}
}class graphics_str extends JPanel{
Font font = new Font("宋体",Font.ITALIC+Font.BOLD,24);
Color color = Color.BLUE;
public void paintComponent(Graphics comp){
comp.setFont(font);
comp.setColor(color);
comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd",50,50);
}
}
为什么graphics打印不出来东西呢?请高手解决下并告诉我为什么,就在我的代码基础上改,小弟深表感谢~
楼主【JAVA_dance】截止到2008-07-21 12:32:34的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20 每贴平均分数:20
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:20
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
你是在默认的content panel里面画的,结果你有从新设置了一个空的panel为content panel。当然什么都看不到了。
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test1 extends JFrame { /**
*
*/
Graphics gh;
JPanel pane = new JPanel();
graphics_str gs = new graphics_str(); public Test1() {
setTitle("game");
setBounds(200, 200, 300, 300);
getContentPane().add(this.gs);
//setContentPane(this.pane); //你把你的 JPanel 加到 ContentPane 里就行,你这句多余。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public static void main(String arg[]) {
Test1 tt = new Test1();
tt.setVisible(true);
}}
class graphics_str extends JPanel { Font font = new Font("宋体", Font.ITALIC + Font.BOLD, 24);
Color color = Color.BLUE; public void paintComponent(Graphics comp) {
super.paintComponent(comp); //先调用一下超类的绘制组件方法,然后再画自己的东西。
comp.setFont(this.font);
comp.setColor(this.color);
comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd", 50, 50);
}}
你再把paintComponent方法换成paint试试。import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;import javax.swing.JFrame;
import javax.swing.JPanel;public class Test1 extends JFrame {
/**
*
*/
Graphics gh;
JPanel pane = new JPanel();
graphics_str gs = new graphics_str(); public Test1() {
setTitle("game");
setBounds(200, 200, 300, 300);
getContentPane().add(gs);
// setContentPane(pane);
setDefaultCloseOperation(this.EXIT_ON_CLOSE);
} public static void main(String arg[]) {
Test1 tt = new Test1();
tt.setVisible(true);
}
}class graphics_str extends JPanel {
Font font = new Font("宋体", Font.ITALIC + Font.BOLD, 24);
Color color = Color.BLUE; public void paint(Graphics comp) {
comp.setFont(font);
comp.setColor(color);
comp.drawString("sadsadasdasdsdasdasdasdsadsadasdasd", 50, 50);
}
}
如果把 paintComponent 方法换成 paint 又不调用超类的 super.paint 那放到 graphics_str 里的组件就画不出来了。