在jpanel上绘制字符时出错

时间:2012-02-23 19:35:10

标签: java swing networking jpanel paintcomponent

即时制作游戏服务器登录服务器已完成,现在我正在使用角色服务器。

我的问题在于客户端,我接收了所有值,然后我想根据这些值创建一个字符。这是我的jPanel代码。

public class createChar extends JPanel {
   private final int ID;
   private String user;
   private int level;
   private int exp;
   private float r;
   private float gr;
   private float b;

public createChar(String username,int ID,int level,int exp,float r,float g,float b){
    this.ID = ID;
    this.user = username;
    this.level = level;
    this.exp = exp;
    this.r =(int) r;
    this.gr =(int) g;
    this.b =(int) b;
    setVisible(true);
}


@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);
    Color clr = new Color(r,gr,b);
    g.setColor(clr);
    g.fillRect(50, 50, 100, 100);   
 super.repaint();

}

这里我添加了jPanel:

                           while((fChara = cin.readLine()) != null){
                           System.out.println("[CHARAS]" + fChara);
                          if (fChara.contains("-")){

                       Scanner cs = new Scanner(fChara);
                        cs.useDelimiter(":");

                          String schar = cs.next();



                       System.out.println( "schar:" +schar);

                      //   cs.delimiter();
                    int id = cs.nextInt();
                    String cname = cs.next();
                       System.out.println("ID:" + id);
                    int level = cs.nextInt();
                    int exp = cs.nextInt();
                    int r = cs.nextInt();
                    int g = cs.nextInt();
                    int b = cs.nextInt();

                    System.out.println( id +":" + cname+":" + level+":" + exp+":" + r+":" +g+":" +b);
                          createChar chara = new createChar(cname,id,level,exp,r,g,b);  
                       jPanel1.add(chara);

                       }

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否注意到您的问题毫无疑问?猜测:您的面板不会显示在父容器中,是吗?添加/删除组件后,必须调用容器的validate方法。

相关问题