Я создаю меню для своей игры, в котором я могу нажать кнопку «Пуск» для навигации по экранам.Я пытаюсь реализовать отдельную кнопку для класса, однако, как я изложил класс CustomButtons, он работает таким образом, что я могу сделать только одну кнопку, которая имеет функцию, для решения этой проблемы я решил сделатьотдельный метод «Кнопки», который содержит параметры для кнопки.Я вызвал это в компоненте рисования, чтобы гарантировать, что он отображается на экране, однако на экране отображается только текст «START».Цвет фона кнопки, границ, шрифта и т. Д. Не изменяется вместе с вызовом.
public class CustomButton extends JButton implements MouseListener {
Dimension size = new Dimension(100, 50);
boolean hover = false;
boolean click = false;
boolean isMethodCalled = false;
String text = "";
public CustomButton(String text, Button bb) {
setVisible(true);
setFocusable(true);
setContentAreaFilled(false);
setBorderPainted(false);
this.text = text;
addMouseListener(this);
}
public void Button(Graphics g) {
g.setColor(new Color(255, 255, hover ? 180 : 102 ));
g.fillRect(0, 0, 250, 7);
g.fillRect(0, 0, 7, 150);
g.setColor(Color.ORANGE); // button background color
g.fillRect(14, 14, 222, 122);
g.setColor(Color.WHITE); // text color
g.setFont(Font.decode("arial-BOLD-24"));
FontMetrics metrics = g.getFontMetrics();
int width = metrics.stringWidth(text);
g.drawString(text, 17, 40);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Button menu = new Button();
}
public void setButtonText(String text) {
this.text = text;
}
public String getButtonText(String text) {
return text;
}
public void mouseEntered(MouseEvent e) {
hover = true;
}
public void mouseExited(MouseEvent e) {
hover = false;
}
public void mousePressed(MouseEvent e) {
click = true;
}
public void mouseReleased(MouseEvent e) {
click = false;
}
public void mouseClicked(MouseEvent e) {
}
}
Кто-нибудь знает, как я могу сделать так, чтобы кнопка, когда она вызывается изМетод «Кнопки» работает, поэтому он отображается точно так, как и должно быть, если бы все графические настройки должны были быть установлены в методе paintComponent?
Это не то, что происходит в настоящее время.Я не хочу, чтобы это произошло:
Вот что я хочу, чтобы произошло с кнопкой: