Идея заключается в следующем:
Создать класс и использовать расширение, чтобы наследовать класс формы JFrame;
Создайте объект jframe и используйте метод setVisible () класса JFrame, чтобы установить форму, чтобы быть видимой;
В конструкторе используйте метод Super (), чтобы наследовать конструктор родительского класса;
Используйте метод Settitle (), чтобы установить заголовок формы;
Используйте метод setBounds (), чтобы установить положение отображения и размер формы;
Используйте метод SetDefaultCloseoPeration (), чтобы установить действие кнопки «Закрыть форму» на выход;
Создайте объект Mayout Mayout Mayout с помощью Gridlayout;
Используйте метод Sethgap () класса Gridlayout, чтобы установить горизонтальное расстояние компонентов;
Используйте метод setvgap () класса Gridlayout, чтобы установить вертикальное расстояние компонента;
Создать объект контейнера JPanel;
Установка контейнера через метод setlayout () класса JPanel использует диспетчер макетов сетки;
Создайте двухмерный массив типа строкового типа и инициализируйте его значение до значения, отображаемого на соответствующей кнопке на калькуляторе;
Создайте двухмерный массив типа Jbutton и выделяйте пространство, соответствующее предыдущему двумерному массиву строкового типа;
Итерация через двумерный массив типа строкового типа, назначьте его соответствующим кнопкам в двухмерном массиве типа Jbutton, чтобы добавить события в каждую кнопку, чтобы соответствующее значение отображалось в поле текста, когда Кнопка нажимает.
Кода -копия выглядит следующим образом:
импортировать java.awt.borderlayout;
Импорт java.awt.dimension;
импортировать java.awt.gridlayout;
импортировать java.awt.event.actionevent;
импортировать java.awt.event.actionlistener;
Импорт javax.swing.jbutton;
импортировать javax.swing.jframe;
импортировать javax.swing.jpanel;
импортировать javax.swing.jtextfield;
импортировать javax.swing.swingconstants;
Импорт javax.swing.uimanager;
открытый класс ButtonarRayExample Extends JFrame {// наследует класс формы jframe
/**
*
*/
Частный статический последний длинный серийный режим = 6626440733001287873L;
Private Jtextfield Textfield;
public static void main (String args []) {
пытаться {
Uimanager.setlookandfeel ("com.sun.java.swing.plaf.nimbus.nimbuslookandfeel");
} catch (throwable e) {
e.printstacktrace ();
}
ButtonArrayExample Frame = new ButtonarArrayExample ();
Frame.SetVisible (true);
}
public buttonararrayExample () {
Super ();
Borderlayout borderlayout = (borderlayout) getContentPane (). GetLayout ();
borderlayout.sethgap (20);
borderlayout.setvgap (10);
Settitle («Интерфейс калькулятора калькулятора массива кнопок»);
SetBounds (100, 100, 290, 282);
SetDefaultCloseoPeration (jframe.exit_on_close);
TextField = new JTextField ();
Textfield.sethorizontalAlignment (SwingConstants.trailing);
TextField.SetPreferredSize (новое измерение (12, 50));
getContentPane (). Add (Textfield, Borderlayout.north);
Textfield.SetColumns (10);
Final Gridlayout Gridlayout = New Gridlayout (4, 0);
Gridlayout.sethgap (5);
Gridlayout.setVgap (5);
JPanel Panel = new jPanel ();
panel.setlayout (Gridlayout);
getContentPane (). Add (панель, borderlayout.center);
String [] [] names = {{"1", "2", "3", "+"}, {"4", "5", "6", "-"}, {"7", " 8 "," 9 "," × "}, {". "," 0 "," = "," ÷ "}};
Jbutton [] [] Buttons = new Jbutton [4] [4];
for (int row = 0; row <names.length; row ++) {
for (int col = 0; col <names.length; col ++) {
кнопки [row] [col] = new jbutton (names [row] [col]);
кнопки [row] [col] .AdcationListener (new ActionListener () {
@Override
public void actionperformed (actionEvent e) {
Jbutton button = (jbutton) e.getSource ();
String text = textfield.getText ();
Textfield.settext (text + button.getText ());
}
});
panel.add (кнопки [row] [col]);
}
}
}
}