class Gui {
protected JFrame j = new JFrame("My First window");
protected JPanel p = new JPanel();
protected Container c;
private GridBagConstraints g = new GridBagConstraints();
public Gui() {
j.setSize(350, 250);
p.setSize(j.getSize());
this.c = j.getContentPane();
}
public void createMyGui() {
p.setLayout(new GridBagLayout());
c.add(p);
setButtons();
setGuiBackground();
j.setVisible(true);
p.setVisible(true);
}
private void setGuiBackground() {
p.setBackground(Color.black);
}
private void setButtons() {
}
private void setLabels() {
g.fill = GridBagConstraints.HORIZONTAL;
g.ipady = 40;
g.weightx = 5.0;
g.insets = new Insets(0,0,0,0);
g.gridwidth = 3;
g.gridx = 0;
g.gridy = 1;
JLabel l1 = new JLabel("<html>Text color: <font color='red'>Red!</font>");
p.add(l1, g);
}
}
В принципе, gui просто открывает окно с черным фоном, как я и хотел, но он не отображает текст. Я занимался вопросом SO, для настройки текста в графическом интерфейсе, и он говорит, что для написания текста используется JLabel и HTML.JPanel не добавляет текст JLabel?
Что не так с этим? Почему текст не появится?
Где вам называть 'setLabels'? –
Не связано, но нет необходимости вызывать 'setVisible (...)' для каждого компонента, просто добавьте их в контейнер, вызовите 'pack()' и установите для свойства visible этого контейнера значение true '. Кроме того, нет необходимости вызывать методы 'setXxXSize()' явно для большинства макетов, пусть это касается диспетчера компоновки, это связано с этой задачей. –