[Java]day--Frame,Dialog,비 용기 류 구성 요소,레이아웃 관리자,이벤트 부분 지식 요약

11636 단어 자바
(1)프레임
소프트웨어 의 상호작용 방식:    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);
	}

좋은 웹페이지 즐겨찾기