JAVA 실험 7 도형 사용자 인터페이스의 디자인 과 실현
12091 단어 Java
실험 내용
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(" ");
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.