아이디어는 다음과 같습니다.
클래스를 생성하고 사용 확장하여 양식 클래스 jframe을 물려 받으십시오.
jframe 객체를 만들고 JFrame 클래스의 setVisible () 메소드를 사용하여 보이도록 양식을 설정하십시오.
생성자에서 Super () 메소드를 사용하여 부모 클래스의 생성자를 상속받습니다.
settitle () 메소드를 사용하여 양식의 제목을 설정하십시오.
setBounds () 메소드를 사용하여 양식의 디스플레이 위치 및 크기를 설정하십시오.
setDefaultCloseOperation () 메소드를 사용하여 종료 버튼의 동작을 종료하도록 설정하십시오.
그리드 레이아웃 관리자 객체를 만들어 GridLayout을 만듭니다.
구성 요소의 수평 간격을 설정하려면 GridLayout 클래스의 Sethgap () 메소드를 사용하십시오.
GridLayout 클래스의 setVgap () 메소드를 사용하여 구성 요소의 수직 간격을 설정합니다.
jpanel 컨테이너 객체를 만듭니다.
JPANEL 클래스의 setLayout () 메소드를 통해 컨테이너 설정은 그리드 레이아웃 관리자를 사용합니다.
문자열 유형 2 차원 배열을 생성하고 계산기의 해당 버튼에 표시된 값으로 값을 초기화합니다.
JBUTTON 형 2 차원 배열을 생성하고 이전 문자열 유형 2 차원 어레이에 해당하는 공간을 할당합니다.
문자열 형 2 차원 배열을 통해 반복하고 JBUTTON 형 2 차원 배열의 해당 버튼에 각 요소에 할당하고 각 버튼에 이벤트를 추가하여 해당 값이 텍스트 입력 상자에 표시되도록합니다. 버튼을 클릭하고 마지막으로 jpanel 클래스의 add () 메소드를 사용하여 버튼을 패널에 추가합니다.
코드 사본은 다음과 같습니다.
java.awt.borderlayout import;
java.awt.dimension import;
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은 jframe {// 양식 클래스 jframe를 상속받습니다.
/**
*
*/
개인 정적 최종 최종 긴 SerialversionUID = 662644073001287873L;
개인 Jtextfield Textfield;
public static void main (String args []) {
노력하다 {
uimanager.setLookandFeel ( "com.sun.java.swing.plaf.nimbus.nimbuslookandfeel");
} catch (Throwable e) {
e.printstacktrace ();
}
ButtonArrayexample 프레임 = 새로운 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);
최종 GridLayout GridLayout = New GridLayout (4, 0);
gridlayout.sethgap (5);
gridlayout.setvgap (5);
JPANEL PANEL = 새로운 jpanel ();
PALEN.SETLAYOUT (GRIDLAYOUT); // 그리드 레이아웃 관리자를 사용할 컨테이너를 설정합니다
getContentPane (). Add (PANEL, BORTHLAYOUT.CENTER);
문자열 [] [] names = {{ "1", "2", "3", "+"}, { "4", "5", "6", "-"}, { "7", " 8 ","9 ","× "}, {". ","0 ","= ","÷ "}};
JBUTTON [] [] 버튼 = 새로운 JBUTTON [4] [4];
for (int row = 0; row <names.length; row ++) {
for (int col = 0; col <names.length; col ++) {
버튼 [row] [col] = new Jbutton (이름 [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 ());
}
});
PANIL.ADD (버튼 [row] [col]); // 패널에 버튼을 추가합니다
}
}
}
}