Итак, я пытался разместить 10 кнопок в сетке внизу моего фрейма (без использования диспетчера компоновки), и по какой-то причине я не могу понять, почему это не работает, мне было интересно, может ли кто-нибудь помочь.
Я, вероятно, должен объяснить код:
В основном я только что создал al oop, который хранит в нем «while», это while повторяется 3 раза перед тем, как закончить и вернуться к l oop. Через некоторое время Y изменится на 85, чтобы начать новый слой для следующих 3 кнопок. L oop повторяется 4 раза, чтобы создать 4 разных слоя из 10 кнопок.
Спасибо!
Main
public class Main {
private static JFrame frame = new JFrame();
private static JPanel panel = new JPanel();
public static void main(String[] args) {
Buttons.setButtons(frame, panel);
Window.setFrame(frame, panel);
}
}
Кнопки
public class Buttons {
private static JButton b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;
private static JButton equals;
private static JButton minus;
private static JButton plus;
private static int i = 0;
private static int x = 10;
private static int y = 140;
private static JButton buttons[] = {b0, b1, b2, b3, b4, b5, b6, b7, b8, b9};
public static void setButtons(JFrame frame, JPanel panel) {
for (int b = 0; b < 4; b++) {
while (i < 3) {
buttons[i] = new JButton(Integer.toString(i));
buttons[i].setBounds(x, y, 80, 80);
x = x + 85;
buttons[i].setFocusable(false);
buttons[i].setBackground(Color.GRAY);
panel.add(buttons[i]);
i++;
}
y = y + 85;
x = 10;
}
System.out.print(y);
frame.setVisible(true);
}
}
Окно
public class Window {
public static void setFrame(JFrame frame, JPanel panel) {
frame.setSize(370, 525);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
panel.setBounds(10, 140, 200, 200);
panel.setBackground(Color.DARK_GRAY);
frame.add(panel);
}
}