Как она стоит, я пытаюсь нарисовать строку отключения компонента в кадр, то SSCCE будет что-то вроде этого:шнурка() не будет рисовать
// 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 и это:
panEst.setValores(administrador.getCiudad().getArca(), administrador.getCiudad().getPuntosBelleza(), administrador.getCiudad().getCantidadHabitantes(), administrador.getCiudad().getCantidadHabitantesDisponibles());
panelDatosCiudad.add(panEst);
Теперь, как он стоит, границы в конструкторе моего компонента показывает вверх и там, где я хочу его но String, которую я хочу нарисовать, нигде не видно. Я что-то упускаю или что-то не так?
Спасибо,
Не знал, что вы изменили положение x/y на этикетке! Начните с использования '0, g.getFontMetrics(). GetAscent()', чтобы убедиться, что 'String' фактически нарисован. Вы можете рисовать только в пределах видимой области компонента ... Это или изменить метод getPreferredSize для возврата соответствующего размера ... – MadProgrammer
Да, строка, нарисованная, я пытаюсь перерисовать ее в течение таймера, но я отказываюсь от этого хаха. – krieg
Убедитесь, что ссылки на компоненты верны. То есть компонент, который вы пытаетесь обновить, на самом деле тот, что есть на экране. – MadProgrammer