L'idée est la suivante :
Créer une classe et lui faire hériter de la classe de formulaire JFrame via extends ;
Créer un objet JFrame et utiliser la méthode setVisible() de la classe JFrame pour définir le formulaire pour être visible ;
Dans le constructeur, utilisez la méthode super() pour hériter de la méthode de construction de la classe parent ;
Utilisez la méthode setTitle() pour définir le titre du formulaire ; Méthode setBounds() pour définir la position d'affichage et la taille du formulaire ;
Utilisez la méthode setDefaultCloseOperation() pour définir l'action du bouton de fermeture du formulaire pour quitter
Utilisez GridLayout pour créer un objet de gestionnaire de disposition de grille ; 🎜>Utilisez la méthode setHgap() de la classe GridLayout pour définir l'espacement horizontal du composant ;
Utilisez La méthode setVgap() de la classe GridLayout définit l'espacement vertical du composant
Créez un objet conteneur JPanel ; ;
Configurer le conteneur pour qu'il utilise le gestionnaire de disposition de grille via la méthode setLayout() de la classe JPanel
Créer un tableau dimensionnel de type chaîne II, initialiser sa valeur à la valeur affichée sur le bouton correspondant sur la calculatrice ;
Créez un tableau bidimensionnel de type JButton et allouez l'espace correspondant au tableau bidimensionnel de type chaîne précédent ;
Parcourez les caractères Tableau bidimensionnel de chaîne, attribuez chaque élément de celui-ci au bouton correspondant dans les deux JButton -tableau dimensionnel et ajoutez un événement à chaque bouton afin que la valeur correspondante soit affichée dans la zone de saisie de texte lorsque vous cliquez sur le bouton. Enfin, utilisez la méthode add() de la classe JPanel pour ajouter des boutons au panneau.
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.UIManager; public class ButtonArrayExample extends JFrame { // 继承窗体类JFrame /** * */ private static final long serialVersionUID = 6626440733001287873L; private JTextField textField; public static void main(String args[]) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } ButtonArrayExample frame = new ButtonArrayExample(); frame.setVisible(true); // 设置窗体可见,默认为不可见 } public ButtonArrayExample() { 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(new Dimension(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(panel, 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++) { buttons[row][col] = new JButton(names[row][col]); // 创建按钮对象 buttons[row][col].addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JButton button = (JButton) e.getSource(); String text = textField.getText(); textField.setText(text + button.getText()); } }); panel.add(buttons[row][col]); // 将按钮添加到面板中 } } } }