JButton с иконкой над background'ом

254
08 марта 2018, 10:52

Делая простую игру на Java столкнулся с проблемой как сделать кнопку, в которой кроме рисунка и надписи больше ничего не должно быть видно, так как она стоит поверх canvas на котором прорисовуется все содержимое. Пробовал сделать нечто подобное:

public class Menu{
...
public open(){
    JButton button = new JButton(new ImageIcon(buttonImage));
    button.setBounds(100, 400, 300, 100);
    button.setOpaque(false);
    button.setFocusPainted(false);
    button.setBorderPainted(false);
    button.setContentAreaFilled(false);
    button.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
    Display.addButton(button);
        }
    }
}
...
public class Display{
    private static JFrame window;
...
//Создание окна и добавление canvas
...
    public static void addButton(JButton btn){
        window.getLayeredPane().add(btn,JLayeredPane.DEFAULT_LAYER);
        window.revalidate();
        }
...
}

Но получилась кнопка с рисунком и белым фоном позади:
Пробовал также создавать кнопку через переопределение метода paint() но результат получался почти таким же. Можно как-то сделать кнопку( как наследника JComponent) чтобы не было видно её границ?

READ ALSO
Описание Graphics2D для “чайника”

Описание Graphics2D для “чайника”

Как рисовать разобрался, а как передавать например из массива объектов прорисовку каждого объекта на экран рисования? Результат есть, а понимания...

208
Вызов метода одного Activity в другом Activity

Вызов метода одного Activity в другом Activity

У меня есть необходимость при нажатии на кнопку переходить в контакты и извлекать список контактов с именами, метод который извлекает контакты...

238
JPA дерево кидает Unable to access lob stream

JPA дерево кидает Unable to access lob stream

У меня есть сущность:

234
Адаптер в RecyclerView

Адаптер в RecyclerView

В общем создал BottomNavigationBar ActivityВ нем еще два фрагмента разделенная через Tabbed menu

188