アイデアは次のとおりです。
クラスを作成し、使用してフォームクラスJFrameを継承します。
JFrameオブジェクトを作成し、JFrameクラスのSetVisible()メソッドを使用して、フォームを表示するように設定します。
コンストラクターでは、Super()メソッドを使用して、親クラスのコンストラクターを継承します。
settitle()メソッドを使用して、フォームのタイトルを設定します。
SetBounds()メソッドを使用して、フォームの表示位置とサイズを設定します。
setDefaultCloseOperation()メソッドを使用して、フォーム閉じるボタンのアクションを設定して終了します。
GridLayoutを使用してグリッドレイアウトマネージャーオブジェクトを作成します。
グリッドレイアウトクラスのsethgap()メソッドを使用して、コンポーネントの水平間隔を設定します。
GridlayoutクラスのSETVGAP()メソッドを使用して、コンポーネントの垂直間隔を設定します。
JPanelコンテナオブジェクトを作成します。
jpanelクラスのsetlayout()メソッドを介してコンテナを設定すると、グリッドレイアウトマネージャーが使用されます。
文字列タイプの2次元配列を作成し、計算機の対応するボタンに表示される値にその値を初期化します。
jbuttonタイプの2次元配列を作成し、以前の文字列タイプの2次元配列に対応する空間を割り当てます。
文字列タイプの2次元配列を繰り返し、それを各要素にjbuttonタイプの2次元配列の対応するボタンに割り当て、各ボタンにイベントを追加して、対応する値がテキスト入力ボックスに表示されるようにイベントを追加します。ボタンがクリックされ、最後にJPanelクラスのADD()メソッドを使用して、パネルにボタンを追加します。
コードコピーは次のとおりです。
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をインポートします。
public class buttonArrayexampleはjframeを拡張します{//フォームクラスjframeを継承する
/**
*
*/
private static final long serialversionuid = 6626440733001287873l;
プライベートJTextfield Textfield;
public static void main(string args []){
試す {
uimanager.setlookandfeel( "com.sun.java.swing.plaf.nimbus.nimbuslookandfeel");
} catch(スロー可能な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( "ボタンアレイ実装計算機インターフェイス"); //フォームのタイトルを設定します
セットバウンド(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パネル= new jPanel();
panel.setlayout(gridlayout);
getContentPane()。add(paner、borderlayout.center);
string [] [] names = {{"1"、 "2"、 "3"、 "+"}、{"4"、 "5"、 "6"、 " - "}、{"7"、 " 8 "、" 9 "、"× "}、{"。 "、" 0 "、" = "、"÷ "}};
jbutton [] []ボタン= 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] .addactionlistener(new ActionListener(){
@オーバーライド
public void actionperformed(ActionEvent e){
jbutton button =(jbutton)e.getSource();
文字列text = textfield.getText();
textfield.settext(text + button.getText());
}
});
panel.add(buttons [row] [col]);
}
}
}
}