首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drawString()不会抽签

drawString()不会抽签
EN

Stack Overflow用户
提问于 2013-12-09 03:43:33
回答 1查看 137关注 0票数 1

目前,我正试图将组件中的字符串绘制到框架中,SSCCE如下所示:

代码语言:javascript
复制
// The component class through which I draw the string!
package gui;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;
import javax.swing.border.LineBorder;

public class PanelEstado extends JPanel{

    private String valores = "";

    protected void paintComponent(Graphics g){

        super.paintComponent(g);
        g.setColor(Color.BLACK);

        g.drawString(valores, 400, 45);

    }

    public void setValores(int arca, int puntosBelleza, int cantidadHabitantes, int cantidadHabitantesDisponibles){

        String valores = "Arca: " + arca 
                + "                                    " 
                + " Puntos de Belleza: " + puntosBelleza + 
                "                                    " + 
                " Habitantes: " + 
                cantidadHabitantes + " / " 
                + cantidadHabitantesDisponibles;
    }

    public PanelEstado(){
        setBorder(new LineBorder(Color.RED));
    }


}

// The Main GUI Class!

public GUIJuego(){

    JPanel panelConstruccion = new JPanel(new GridLayout(9,1));
    JPanel panelDatosCiudad = new JPanel(new GridLayout(1,2));
    JPanel panelMapa = new JPanel(new GridLayout(25,25));
    PanelEstado panEst = new PanelEstado();
        add(panelConstruccion, BorderLayout.WEST);

    add(panelDatosCiudad, BorderLayout.NORTH);
    panelDatosCiudad.add(labelConstrucciones);
    panEst.setValores(administrador.getCiudad().getArca(), administrador.getCiudad().getPuntosBelleza(), administrador.getCiudad().getCantidadHabitantes(), administrador.getCiudad().getCantidadHabitantesDisponibles());
    panelDatosCiudad.add(panEst);
    add(panelMapa, BorderLayout.CENTER);
}

让我把你的搜索范围缩小一点。其中最重要的部分是SSCCE中的第一个类,如下所示:

代码语言:javascript
复制
    panEst.setValores(administrador.getCiudad().getArca(), administrador.getCiudad().getPuntosBelleza(), administrador.getCiudad().getCantidadHabitantes(), administrador.getCiudad().getCantidadHabitantesDisponibles());
    panelDatosCiudad.add(panEst);

现在,我的组件的构造函数中的边框确实出现了,并且就在我想要的位置,但是我想要绘制的字符串在任何地方都看不到。我是错过了什么,还是做错了什么?

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-09 03:47:27

您没有覆盖PanelEstado类的PanelEstado方法,因此大小为零,因此不会绘制组件。

你为什么要用面板来做这个。JLabel和使用setText(.)有什么问题?方法。那么您就不需要担心设置首选的大小了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20462750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档