JAVA 실험 7 도형 사용자 인터페이스의 디자인 과 실현

12091 단어 Java
1. 실험 목적 1. 도형 인터페이스 디자인 파악.2. 자주 사용 하 는 GUI 제어 구성 요소 와 이벤트 처 리 를 파악 합 니 다.
실험 내용
1. 프로 그래 밍 은 탭 과 단 추 를 포함 합 니 다. 단 추 를 누 르 면 탭 의 내용 이 '안녕하세요' 와 '안녕' 사이 에서 전 환 됩 니 다.2. 창 을 디자인 합 니 다. 창 에 텍스트 상자 하나, 탭 하나, 단추 두 개가 포함 되 어 있 습 니 다. '텍스트 하나' 단 추 를 누 르 면 'Hello java!' 를 텍스트 상자 에 표시 하고 '텍스트 둘' 단 추 를 누 르 면 '안녕하세요 자바!' 를 텍스트 상자 에 표시 합 니 다.(두 단추 사이 에 격자 레이아웃 을 사용 하고 다른 구성 요소 와 함께 Frame 기본 레이아웃 관 리 를 사용 하도록 요구 합 니 다).
3. 버튼 이 들 어 있 는 창 을 설계 해 보 세 요. 실행 을 시작 할 때 "Click Me" 라 는 단 추 를 누 르 면 "Click Me Again" 이라는 단 추 를 누 르 고 다시 누 르 면 "Click Me" 라 는 단 추 를 누 르 면 순환 합 니 다. (1, 2, 3 을 하나 로 선택 할 수 있 습 니 다)
4. 프로 그래 밍 은 텍스트 상자 와 텍스트 영역 을 포함 하고 텍스트 상자 에서 Enter 키 를 누 를 때 텍스트 상자 의 내용 을 텍스트 영역 에 기록 합 니 다.
5. 창 을 디자인 해 보 세 요. 창 인 터 페 이 스 는 아래 그림 과 같 습 니 다. Style 메뉴, Color 메뉴 와 Exit 메뉴, Style 메뉴 디자인 글꼴 의 스타일 (Plane, Bold, Italic 포함), Color (빨간색, 녹색, 파란색, 사용자 정의) 메뉴 디자인 글꼴 의 색상, Exit 메뉴 (CloseWindow) 시스템 종료.
코드 구현:
1.
   :
package p;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class T {

	public static void main(String[] args) {
		
		JFrame f=new JFrame();
		FlowLayout flow =new FlowLayout();
		f.setLayout(flow);//    
		
		JButton b=new JButton("exchange");
		final JLabel j=new JLabel("hello");
		b.addActionListener(new ActionListener(){//     

			public void actionPerformed(ActionEvent e) {
				if(j.getText().equals("hello"))
					j.setText("bye");
				else j.setText("hello");
			}
			
		});
		
		f.add(b); //     ,         
		f.add(j);
		
		f.setBounds(20,20,200,200);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

   :
package cn.nefu.edu.cn;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class MyWindow extends JFrame implements ActionListener{
	JButton bt;
	JLabel bq1;
	
	public MyWindow(){
		FlowLayout flow =new FlowLayout();
		this.setLayout(flow);
		bq1=new JLabel("bye");
		bt=new JButton("exchange");
		
		bt.addActionListener(this);//    ,       ActionListener
		
		this.add(bt);	
		this.add(bq1);
		validate();
		this.setBounds(20,20,200,200);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public void actionPerformed(ActionEvent e) {//    
		if(e.getSource()==bt){
			if(bq1.getText().equals("bye"))				
			       bq1.setText("hello");
			else bq1.setText("bye");
		}
	}
}


Test.java
package cn.nefu.edu.cn;

public class Test {

	public static void main(String[] args) {
		new MyWindow();
	}
}

2.
방법 1:
package cn.edu.nefu.zhihu;

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.JLabel;
import javax.swing.JTextField;

public class MyWindow2 extends JFrame implements ActionListener{
	JButton bt1;
	JButton bt2;
	JTextField wb;
	JLabel bq;
	
	public MyWindow2(){
		GridLayout grid=new GridLayout(2,2);
		this.setLayout(grid);
		
		wb=new JTextField();
		bq=new JLabel("name");
		bt1=new JButton("   ");
		bt2=new JButton("   ");
		
		this.add(bq);
		this.add(wb);
		this.add(bt1);
		this.add(bt2);
		
		bt1.addActionListener(this);
		bt2.addActionListener(this);
		
		this.setVisible(true);
		this.setBounds(30,30,300,300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==bt1){
			wb.setText("Hello java!");
		}
		else wb.setText("   Java!");
	}
}

package cn.edu.nefu.zhihu;

public class Test2 {

	public static void main(String[] args) {
		new MyWindow2();
	}
}

방법 2:
package cn.edu.nefu.zhihu;

import java.awt.BorderLayout;

public class MyWindow2 extends JFrame implements ActionListener{
	JButton bt1;
	JButton bt2;
	JTextField wb;
	JLabel bq;
	JPanel mb;
	
	public MyWindow2(){
		mb=new JPanel();
		GridLayout grid=new GridLayout(1,2);
		mb.setLayout(grid);
		
		wb=new JTextField();
		bq=new JLabel("name");
		bt1=new JButton("   ");
		bt2=new JButton("   ");
		
		this.add(bq,BorderLayout.WEST);
		this.add(wb,BorderLayout.CENTER);
		mb.add(bt1);
		mb.add(bt2);
		this.add(mb,BorderLayout.SOUTH);
		
		bt1.addActionListener(this);
		bt2.addActionListener(this);
		
		this.setVisible(true);
		this.setBounds(30,30,300,300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==bt1){
			wb.setText("Hello java!");
		}
		else wb.setText("   Java!");
	}
}
package cn.edu.nefu.zhihu;

public class Test2 {

	public static void main(String[] args) {
		//new Jisuanqi("   ");
		new MyWindow2();
	}
}

3.
package cn.edu.nefu.zhihu;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MyWindow3 extends JFrame implements ActionListener{
	JButton an;
	MyWindow3(){
		an=new JButton("Click Me");
		this.add(an);
		an.addActionListener(this);
		
		this.setVisible(true);
		this.setBounds(50,50,200,150);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		if(an.getText().equals("Click Me")){
			an.setText("Click Me Again");
		}
		else an.setText("Click Me");
	}
}

package cn.edu.nefu.zhihu;

public class Test2 {

	public static void main(String[] args) {
		new MyWindow3();
	}
}

4.
package cn.edu.nefu.zhihu;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class MyWindow4 extends JFrame implements ActionListener {
	JTextField t1;
	JTextArea t2;
	
	MyWindow4(){
		t1=new JTextField(20);
		t2=new JTextArea(20,10);
		this.add(t1,BorderLayout.WEST);
		this.add(t2,BorderLayout.CENTER);
		
		t1.addActionListener(this);
		
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setBounds(100,100,200,400);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==t1){
			t2.setText(t2.getText()+"
"+t1.getText()); t1.setText(" "); } } } package cn.edu.nefu.zhihu; public class Test2 { public static void main(String[] args) { new MyWindow4(); } }

5.
package cn.edu.nefu.zhihu;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class MyWindow5 extends JFrame {
	JMenuBar menubar;
	JMenu menu1,menu2,menu3;
	JMenuItem item1,item2,item3,item4,item5,item6,item7,item8;
	
	public MyWindow5(String ss){
		this.setTitle(ss);
		this.setSize(200,250);
		this.setVisible(true);
		
		menubar=new JMenuBar();
		this.setJMenuBar(menubar);
		
		menu1=new JMenu("Style");
		menu2=new JMenu("Color");
		menu3=new JMenu("Exit");
		menubar.add(menu1);
		menubar.add(menu2);
		menubar.add(menu3);
		
		item1=new JMenuItem("Plane");
		item2=new JMenuItem("Bold");
		item3=new JMenuItem("Italic");
		
		item4=new JMenuItem("Red");
		item5=new JMenuItem("Green");
		item6=new JMenuItem("Blue");
		item7=new JMenuItem("User-defined");
		
		item8=new JMenuItem("Close Window");
		
		menu1.add(item1);
		menu1.add(item2);
		menu1.add(item3);
		menu2.add(item4);
		menu2.add(item5);
		menu2.add(item6);
		menu2.add(item7);
		menu3.add(item8);
		
		validate();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

package cn.edu.nefu.zhihu;

public class Test2 {

	public static void main(String[] args) {
		new MyWindow5("a Window");
	}
}


6.
계산기 의 간단 하고 기본 적 인 실현 은 정수 (소수 적 인 것 도 가능 하지만 인터페이스 가 그다지 우호 적 이지 않다) 의 가감 곱 하기 사 칙 연산 만 실현 할 수 있 고 매번 계산 을 거 친 후에 모두 0 을 해 야 한다. 그렇지 않 으 면 계산 이 틀 릴 수 있다.
코드 구현 은 다음 과 같 습 니 다.
package cn.edu.nefu.zhihu;

import java.awt.BorderLayout;
import java.awt.Font;
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;

public class Jisuanqi extends JFrame{
	JTextField wbk;
	JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
	JButton b10,b11,b12,b13,b14;
	JButton b15,b16;
	JPanel mb;
	double acc=0;
	String yunSuanFu=null;
	
	public Jisuanqi(String ss){
		super(ss);
		wbk=new JTextField("0");
		b0=new JButton("0");
		b1=new JButton("1");
		b2=new JButton("2");
		b3=new JButton("3");
		b4=new JButton("4");
		b5=new JButton("5");
		b6=new JButton("6");
		b7=new JButton("7");
		b8=new JButton("8");
		b9=new JButton("9");
		b10=new JButton(".");
		
		b11=new JButton("+");
		b12=new JButton("-");
		b13=new JButton("*");
		b14=new JButton("/");
		
		b15=new JButton("=");
		b16=new JButton("C");
		
		mb=new JPanel();
		GridLayout grid=new GridLayout(4,4,4,12);
		mb.setLayout(grid);
		this.add(wbk,BorderLayout.NORTH);
		wbk.setHorizontalAlignment(JTextField.RIGHT);
		this.add(mb,BorderLayout.CENTER);
		mb.add(b1);
		mb.add(b2);
		mb.add(b3);
		mb.add(b11);
		
		mb.add(b4);
		mb.add(b5);
		mb.add(b6);
		mb.add(b12);
		
		mb.add(b7);
		mb.add(b8);
		mb.add(b9);
		mb.add(b13);
		
		mb.add(b0);
		mb.add(b10);
		mb.add(b15);
		mb.add(b14);
		
		this.add(b16,BorderLayout.SOUTH);
		
		A a=new A();
		b0.addActionListener(a);
		b1.addActionListener(a);
		b2.addActionListener(a);
		b3.addActionListener(a);
		b4.addActionListener(a);
		b5.addActionListener(a);
		b6.addActionListener(a);
		b7.addActionListener(a);
		b8.addActionListener(a);
		b9.addActionListener(a);
		b10.addActionListener(a);
		
		B b=new B();
		b11.addActionListener(b);
		b12.addActionListener(b);
		b13.addActionListener(b);
		b14.addActionListener(b);
		
		b15.addActionListener(new C());
		b16.addActionListener(new D());
		
		b16.setFont(new Font("  ",Font.BOLD,28));
		
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setBounds(300,300,250,325);
	}
	class A implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			String s=e.getActionCommand();//s          
			String ss=wbk.getText();//ss        
			if(ss.equals("0")||ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")){
				wbk.setText(s);
			}
			else{
				wbk.setText(ss+s);
			}
		}
		
	}
	
	class B implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			acc=Double.parseDouble(wbk.getText());
			yunSuanFu=e.getActionCommand();
			wbk.setText(e.getActionCommand());
		}
		
	}
	
	class C implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			String ss=wbk.getText();
			double sum1=Double.parseDouble(ss);
			if(yunSuanFu.equals("+"))
				wbk.setText(Double.toString(acc+sum1));
			if(yunSuanFu.equals("-"))
				wbk.setText(Double.toString(acc-sum1));
			if(yunSuanFu.equals("*"))
				wbk.setText(Double.toString(acc*sum1));
			if(yunSuanFu.equals("/"))
				wbk.setText(Double.toString(acc/sum1));
		}
	}
	
	class D implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent arg0) {
			wbk.setText("0");
			acc=0;
		}
		
	}
}



package cn.edu.nefu.zhihu;

public class Test2 {

	public static void main(String[] args) {
		new Jisuanqi("   ");
	}
}

좋은 웹페이지 즐겨찾기