[Java]day--Frame,Dialog,비 용기 류 구성 요소,레이아웃 관리자,이벤트 부분 지식 요약
11636 단어 자바
소프트웨어 의 상호작용 방식: 1.dos 명령 의 대화 방식. 2.도형 화 된 인터페이스의 상호작용 방식.자바 그래 픽 인터페이스 프로 그래 밍 에서 모든 그래 픽 류 를 구성 요소 류 라 고 합 니 다.모든 그래 픽 구성 요 소 는 자바.awt 와 자바 x.swing 패키지 에 있 습 니 다. awt 가방 에 존재 하 는 도형 류 는 swing 에서 도 존재 합 니 다.swing 의 도형 은 모두 J 로 시작 하 는 것 과 차이 가 있 습 니 다.
java.awt 패키지 의 도형 류 와 javax.swing 패키지 의 도형 류 의 차이 점: 1.java.awt 패키지 의 모든 그래 픽 클래스 의 그래 픽 은 시스템 에 의존 하 는 그래 픽 라 이브 러 리 입 니 다.java.swing 가방 의 모든 도형 류 의 도형 은 sun 이 스스로 실현 한 것 입 니 다.모든 그래 픽 클래스 를 구성 요소 라 고 합 니 다: 용기 구성 요소: 비 용기 구성 요소:
public static void main(String[] args) {
// ,
JFrame frame=new JFrame(" ");
// ,
//frame.setSize(300,400);
//
//frame.setBounds(533, 134, 300, 400);// ,
//
FrameUtil.initFrame(frame, 500, 400);
//
frame.setVisible(true);
//
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// ( , )
}
//
public class FrameUtil {
//
public static void initFrame(JFrame frame,int width,int height) {
//
Toolkit toolkit=Toolkit.getDefaultToolkit();
//
Dimension d=toolkit.getScreenSize();
int x=(int)d.getWidth();// double
int y=(int)d.getHeight();
frame.setBounds((x-width)/2, (y-height)/2, width, height);
//
frame.setVisible(true);
//
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
(2)대화 상자
대화 상자: Dialog(Dialog owner,String title,boolean modal) 소유자 제목 modal 모드 true:대화 상자 가 닫 히 지 않 았 을 때 소유 자 를 조작 할 수 없습니다.false:대화 상 자 는 닫 히 지 않 아 도 소유 자 를 조작 할 수 있 습 니 다.JOptionPane(대화 상자): //메시지,경고,오류 showMessageDialog(Component parentComponent,Object message,String title,int messageType) patentComponent 소유자 message 소식. title 대화 상자 의 제목 messageType 대화 상자 의 종 류 를 지정 합 니 다(메시지,경고,오류)
public static void main(String[] args) {
//
JFrame frame=new JFrame(" ");
/*
JDialog dialog=new JDialog(frame," ",true);
FrameUtil.initFrame(frame, 500, 400);//433 143
dialog.setBounds(580, 250, 250, 250);
dialog.setVisible(true);
*/
FrameUtil.initFrame(frame, 500, 400);
//
//JOptionPane.showMessageDialog(frame, " 26 "," ",JOptionPane.INFORMATION_MESSAGE);
//
//JOptionPane.showMessageDialog(frame," !!!"," ",JOptionPane.WARNING_MESSAGE);
//
//JOptionPane.showMessageDialog(frame," ~~"," ",JOptionPane.ERROR_MESSAGE);
/*
//
int num=JOptionPane.showConfirmDialog(frame, " ?");
System.out.println(num);// 0 1 2
*/
//
String money=JOptionPane.showInputDialog(frame, " :");
System.out.println("money:"+money);
}
(3)FileDialog
FileDialog(파일 대화 상자) FileDialog(Dialog parent,String title,int mode) parent 소유자 title 표제 mode FileDialog.LOAD(불 러 오기)또는 FileDialog.SAVE(저장)
public static void main(String[] args) {
JFrame frame=new JFrame();
FileDialog dialog=new FileDialog(frame," ",FileDialog.LOAD);
// dialog
dialog.setVisible(true);
FrameUtil.initFrame(frame, 500, 400);
System.out.println(" :"+dialog.getDirectory());
System.out.println(" :"+dialog.getFile());
}
(4)비 용기 류 구성 요소
public static void main(String[] args) {
JFrame frame=new JFrame(" ");
//
JPanel panel=new JPanel();
//
//
JLabel nameLabel=new JLabel(" :");
//
JTextField nameField=new JTextField(12);// ( )
//
panel.add(nameLabel);
panel.add(nameField);
//
JLabel pwdLabel=new JLabel(" :");
//
JPasswordField pwdField=new JPasswordField(12);
panel.add(pwdLabel);
panel.add(pwdField);
//
JLabel sexLabel=new JLabel(" :");
// : ,
JRadioButton man=new JRadioButton(" ",true);//
JRadioButton woman=new JRadioButton(" ");
//
ButtonGroup group=new ButtonGroup();
//
group.add(woman);
group.add(man);
panel.add(sexLabel);
panel.add(man);
panel.add(woman);
//
JLabel addLabel =new JLabel(" :");
//
Object[] cities= {" "," "," "," "," "," "};
JComboBox cityBox=new JComboBox(cities);
panel.add(addLabel);
panel.add(cityBox);
//
JLabel hobbLabel=new JLabel(" :");
//
JCheckBox java=new JCheckBox("java");
JCheckBox listen=new JCheckBox(" ");
JCheckBox feng=new JCheckBox(" ");
panel.add(hobbLabel);
panel.add(java);
panel.add(listen);
panel.add(feng);
//
JLabel introJLabel=new JLabel(" :");
// ( )
JTextArea area=new JTextArea(15,15);//
panel.add(introJLabel);
panel.add(area);
frame.add(panel);
FrameUtil.initFrame(frame, 800, 500);
}
메뉴 구성 요소: 메뉴 막대(JMenuBar)메뉴 항목(JMMenu Item)관계:메뉴 막대 추가 메뉴,메뉴 추가 메뉴 항목
체크 메뉴:메뉴 에 메뉴 를 추가 하고 메뉴 에 메뉴 항목 을 추가 합 니 다.
메모 장 구현:
public class notepad {
//
JFrame frame=new JFrame(" ");
//
JMenuBar bar=new JMenuBar();
//
JMenu fileMenu=new JMenu(" (F)");
JMenu editMenu=new JMenu(" (E)");
JMenu layoutMenu=new JMenu(" (O)");
JMenu viewMenu=new JMenu(" (V)");
JMenu helpMenu=new JMenu(" (H)");
//
JMenuItem save=new JMenuItem(" (S)");
JMenuItem open=new JMenuItem(" (O)");
JMenuItem copy=new JMenuItem(" (C)");
JMenuItem paste=new JMenuItem(" (P)");
JMenuItem about=new JMenuItem(" (A)");
JMenuItem version=new JMenuItem(" (V)");
//
JTextArea area=new JTextArea(20,20);
//
public void init() {
//
bar.add(fileMenu);
bar.add(editMenu);
//bar.add(helpMenu);
bar.add(layoutMenu);
bar.add(viewMenu);
//
fileMenu.add(open);
fileMenu.add(save);
editMenu.add(copy);
editMenu.add(paste);
// 。
editMenu.add(helpMenu);
//
helpMenu.add(about);
helpMenu.add(version);
//
frame.add(bar,BorderLayout.NORTH);//
frame.add(area);
FrameUtil.initFrame(frame, 600, 600);
}
public static void main(String[] args) {
new notepad().init();
}
}
(5)레이아웃 관리자
레이아웃 관리자: 레이아웃 관리자 의 역할 은 구성 요 소 를 배치 하 는 것 입 니 다.모든 레이아웃 관리 자 는 서로 다른 스타일 을 가지 고 있 습 니 다.
BorderLayout(테두리 레이아웃 관리자)에서 주의해 야 할 사항: 1.한 용기 가 BorderLay Out 레이아웃 관리 자 를 사용 했다 면 이 용기 에 구성 요 소 를 추가 할 때 구체 적 인 위 치 를 지정 하지 않 았 다 면 기본 값 은 중간 에 있 습 니 다. 2.Frame 은 기본적으로 BorderLayout 레이아웃 관리 자 를 사용 합 니 다. 3.동서남북 에 어떤 구성 요소 가 부족 합 니까?그러면 중간 구성 요소 가 빈 자 리 를 차지 합 니 다.
public static void main(String[] args) {
JFrame frame=new JFrame(" ");
//
BorderLayout borderLayout=new BorderLayout();
//
frame.setLayout(borderLayout);
frame.add(new JButton(" "),BorderLayout.NORTH);
frame.add(new JButton(" "),BorderLayout.SOUTH);
frame.add(new JButton(" "),BorderLayout.EAST);
frame.add(new JButton(" "),BorderLayout.WEST);
frame.add(new JButton(" "),BorderLayout.CENTER);
//
FrameUtil.initFrame(frame, 400, 400);
}
FlowLayout 스 트림 레이아웃 관리자 주의사항: 1.FlowLayout 를 사용 하면 기본 값 은 가운데 정렬 입 니 다. 2.panel 에서 기본적으로 사용 하 는 레이아웃 관리 자 는 FlowLayout 레이아웃 관리자 입 니 다.
public static void main(String[] args) {
JFrame frame=new JFrame(" ");
//
JPanel panel=new JPanel();
//
FlowLayout flowLayout=new FlowLayout(FlowLayout.LEFT,10,0);// , 10
//
panel.setLayout(flowLayout);
frame.add(panel);
panel.add(new JButton("one"));
panel.add(new JButton("two"));
panel.add(new JButton("three"));
panel.add(new JButton("four"));
FrameUtil.initFrame(frame, 300, 300);
}
GridLayout 표 레이아웃 관리자: 추가 한 구성 요소 가 표 의 개 수 를 초과 하면 여러 열 을 추가 하여 처리 합 니 다.
public static void main(String[] args) {
JFrame frame=new JFrame();
//
GridLayout gridLayout=new GridLayout(4,4);// 16
frame.setLayout(gridLayout);
for(int i=0;i<10;i++) {
frame.add(new JButton(i+""));
}
frame.add(new JButton("+"));
frame.add(new JButton("-"));
frame.add(new JButton("*"));
frame.add(new JButton("/"));
frame.add(new JButton("="));
frame.add(new JButton("."));
frame.add(new JButton("?"));
FrameUtil.initFrame(frame, 400, 400);
}
(6)사건
이벤트:어떤 구성 요소 가 지정 한 동작 을 할 때 해당 하 는 처리 방안 이 있 습 니 다.이벤트 원본 모니터 이벤트 처리 방식
동작 감청 기:동작 감청 기 는 마우스 클릭 과 스페이스 바 에 모두 작용 한다.
public static void main(String[] args) {
//
JFrame frame=new JFrame(" ");
//
JButton button=new JButton(" ");
// ,
button.addActionListener(new ActionListener() {
// 、 actionPerformed
// ,
@Override
public void actionPerformed(ActionEvent e) {
JButton button=(JButton)e.getSource();//
String content=button.getText();
if(" ".equals(content)) {
button.setText(" ");
}else {
button.setText(" ");
}
}
});
frame.add(button);
FrameUtil.initFrame(frame,300, 300);
}
마우스 모니터
JFrame frame=new JFrame(" ");
//
JButton button=new JButton(" ");
//
/*
button.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
System.out.println(" ...");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println(" ...");
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println(" ...");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println(" ...");
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(" ...");
}
});*/
/*MouseAdapter MouseListener ,
。
*/
//
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
//System.out.println(" ...");
if(e.getClickCount()==2) {
System.out.println(" ...");
}
}
});
frame.add(button);
FrameUtil.initFrame(frame, 300, 300);
}
키보드 모니터
public static void main(String[] args) {
JFrame frame=new JFrame(" ");
//
JButton button=new JButton(" ");
//
/*
button.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println(" ...");
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println(" ...");
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(" ...");
}
});
*/
// ,
button.addKeyListener(new KeyAdapter() {
//
public void keyPressed(KeyEvent e) {
System.out.println(" :"+e.getKeyChar()+" code:"+e.getKeyCode());
}
});
frame.add(button);
FrameUtil.initFrame(frame, 300, 300);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.