Нарисуйте другой компонент в paintComponent - PullRequest
4 голосов
/ 20 июля 2011

Я использую SwingPaintDemo2 из Учебников по Java:

http://download.oracle.com/javase/tutorial/uiswing/examples/painting/SwingPaintDemo2Project/src/painting/SwingPaintDemo2.java

Я изменил это так:

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    // Draw Text
    g.drawString("This is my custom Panel!",10,20);

    JLabel c = new JLabel("Label");
    c.paint(g);
}

g.drawString работает нормально. Но как я могу нарисовать JLabel из этого метода? Это не работает.

Ответы [ 3 ]

4 голосов
/ 20 июля 2011

См. Источник LabelRenderTest.java в этой теме . Метка в конечном итоге выводится на экран, но она отображается до BufferedImage, прежде чем отображаться.

image

Важной строкой источника является ..

textLabel.setSize(textLabel.getPreferredSize());
4 голосов
/ 20 июля 2011

Я думаю, вы должны установить размер для вашего ярлыка.

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    // Draw Text
    g.drawString("This is my custom Panel!",10,20);

    JLabel c = new JLabel("Label");
    c.setBounds(0, 0, 400, 30);
    c.paint(g);
}
0 голосов
/ 05 мая 2017
JLabel label_name = new JLabel("Some text");

label_name.setBounds(position_x, position_y, width, height);

label_name.setFont(new Font("Dialog", Font.PLAIN, 10));

add(label_name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...