Компоненты JComponents не отображаются должным образом - PullRequest
0 голосов
/ 06 августа 2020

Две мои кнопки j, отображаемые на моем JFrame, не отображаются должным образом после того, как я изменил цвета кнопок JButtons. Текст накладывается друг на друга при наведении курсора мыши.

Вот мой код для программы:

import javax.swing.*;
import java.awt.*;

public class ButtonExample extends JFrame
{
   public static void main (String [] args) 
  {
    //Create jframe
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setSize(400, 250);
    frame.setLocation(5, 5);
    frame.setVisible(true);
    frame.setLayout(new FlowLayout());
    
    //Create first button
    JButton button = new JButton("First button");
    button.setBackground(new Color(0, 0, 0, 0));
    button.setForeground(new Color(0, 0, 0, 250));
    frame.add(button);
    
    //Create second button
    JButton button2 = new JButton("button 2");
    button2.setBackground(new Color(0, 0, 0, 0));
    button2.setForeground(new Color(0, 0, 0, 250));
    frame.add(button2);
   }
 }

И вот результат работы программы

Program, когда я сначала запустите его:

https://i.stack.imgur.com/VdPpK.png

Program after I hover my mouse over both buttons:

https://i.stack.imgur.com/sFOvs.png

1 Ответ

0 голосов
/ 06 августа 2020

Если вы хотите, чтобы кнопка была прозрачной, не устанавливайте фон.

Вместо этого вы можете использовать:

button.setOpaque( false );

Теперь Swing будет автоматически рисовать родительский компонент перед рисованием кнопка для удаления артефактов рисования.

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