Я изменил цвета кнопок с цветами по умолчанию, такими как Color.yellow и т. Д. Как я могу использовать более подробный цвет?
Вы можете использовать свою собственную кнопку, скажем, public class XButton extends JButton
. Чтобы лучше настроить ваши кнопки переопределить метод public void paintComponent(Graphics g)
. Затем вы можете использовать fillRect
для заливки прямоугольника кнопки стандартным цветом ИЛИ приведите ваш объект Graphics g
к Graphics2D
и затем установить объект GradientPaint()
, который заполняет форму линейным цветом градиент.
public class XButton extends JButton {
public XButton() {
super();
}
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D)g;
GradientPaint gp = new GradientPaint(0, 0, Color.RED, 30, 30, Color.cyan, true);
g2d.setPaint(gp);
g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
}
}
Результат на следующем рисунке:
PS: при добавлении кнопок замените JButton на Xbutton, и все.
Когда игра заканчивается, программа запрашивает повторную игру. Если пользователь выбирает Да, то появляется новое окно игры, но старое окно все еще остается, что мне не понравилось. Я хочу, чтобы старые окна были закрыты, но не смог найти, как это реализовать.
Вы просто используете метод dispose()
для объекта JFrame gameWindow
, поэтому в вашем коде есть два места, куда вы должны поместить:
if (response == 0){
gameWindow.dispose();
new CSE141HW5();
}
Подробнее о Как программно закрыть JFrame .
Если вы обнаружите в моей программе какой-либо код, который, по вашему мнению, не нужен, или если вы считаете, что есть лучший способ, чем то, что я делаю, пожалуйста, сообщите мне. Так что я могу учиться.
Ну, твой код хорош. Если вы хотите улучшить это. StackOverflow не подходящее место для этого. Вам лучше проверить: codereview.stackexchange.com
Надеюсь, я ответил на ваши вопросы.