>  기사  >  Java  >  Java로 창과 프로그램을 만드는 방법에 대한 자세한 설명

Java로 창과 프로그램을 만드는 방법에 대한 자세한 설명

零下一度
零下一度원래의
2017-07-18 15:18:482354검색
  1. Java의 생성 창과 프로그램 부분에 대한 자세한 설명은 다음과 같습니다.

            1. init() 메소드: 프로그램 부분이 처음 생성되고 초기화 프로그램 부분이 실행될 때 호출됩니다. 처음으로.

Stop() 메서드: 프로그램이 웹 브라우저 보기를 떠날 때마다 호출되므로 프로그램은 destroy()를 호출하기 전에 호출되는 비용이 많이 드는 작업을 닫을 수 있습니다. (Destroy() 메소드: 프로그램 필름이 더 이상 필요하지 않으며, 페이지에서 제거할 때 호출합니다.

Start() 메서드: 프로그램이 웹 브라우저에 들어갈 때마다 호출되며 프로그램이 일반 작업을 시작하도록 허용합니다(특수 프로그램은 stop()에 의해 닫힙니다). init() 후에도 호출됩니다.

페인트() 메서드: 기본 클래스 구성 요소(상속 구조의 세 번째 수준)의 일부입니다. 프로그램의 캔버스에서 특수 렌더링을 수행하기 위해 update()의 일부로 호출됩니다.

2. 이벤트 모델: (1) 먼저 클래스에 addXXXXXListener() 메서드를 추가합니다. ㅋㅋㅋ >      인터페이스 실행 방법을 다시 작성합니다.

package thirteen;import java.awt.*;import java.awt.event.*;import java.applet.*;public class Button2New extends Applet {
    Button b1 = new Button("button1"), b2 = new Button("button2");public void init() {
        b1.addActionListener(new B1());
        b2.addActionListener(new B2());
        add(b1);
        add(b2);
    }class B1 implements ActionListener {public void actionPerformed(ActionEvent e) {
            getAppletContext().showStatus("BUTTon1");
        }
    }class B2 implements ActionListener {public void actionPerformed(ActionEvent e) {
            getAppletContext().showStatus("Button2");
        }
    }
}

3. 창 만들기: (1) main() 메서드에서 새 프레임 클래스를 만들고 애플릿의 파생 클래스를 초기화합니다.

                       (2) WindowAdapter 클래스를 상속하고 windowClosing() 메서드를 재정의합니다.

                           (3) Frame의 setVisible() 메소드를 실행합니다.

package thirteen;import java.applet.*;import java.applet.*;import java.awt.BorderLayout;import java.awt.Button;import java.awt.TextField;import java.awt.Desktop.Action;import java.awt.Frame;import java.awt.event.*;import java.time.temporal.TemporalQueries;import javax.swing.table.TableRowSorter;import org.omg.CORBA.FloatSeqHelper;public class TextNew extends Applet {
    Button b1 = new Button("Get Text"), b2 = new Button("Set Text");
    TextField t1 = new TextField(30), t2 = new TextField(30), t3 = new TextField(30);
    String s = new String();public void init() {
        b1.addActionListener(new B1());
        b2.addActionListener(new B2());
        t1.addTextListener(new T1());
        t1.addActionListener(new T1A());
        t1.addKeyListener(new T1K());
        add(b1);
        add(b2);
        add(t1);
        add(t2);
        add(t3);
    }class T1 implements TextListener {public void textValueChanged(TextEvent e) {
            t2.setText(t1.getText());
        }
    }class T1A implements ActionListener {private int count = 0;

        @Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根t3.setText("t1 Action Event " + count++);

        }

    }class T1K extends KeyAdapter {public void keyTyped(KeyEvent e) {
            String tString = t1.getText();if (e.getKeyChar() == KeyEvent.VK_BACK_SPACE) {if (tString.length() > 0) {
                    tString = tString.substring(0, tString.length() - 1);
                    t1.setText(tString);
                }
            }elset1.setText(t1.getText()+Character.toUpperCase(e.getKeyChar()));
            t1.setCaretPosition(t1.getText().length());
            e.consume();
        }
    }    class B1 implements ActionListener{public void actionPerformed(ActionEvent e){
            s=t1.getSelectedText();if(s.length()==0)s=t1.getText();
            t1.setEditable(true);
        }
    }class B2 implements ActionListener{public void actionPerformed(ActionEvent e){
            t1.setText("Insert by Button2:"+s);
            t1.setEditable(false);;
        }
    }    public static void main(String[] args){
        TextNew applet=new TextNew();
        Frame aFrame=new Frame("TextNew");
        aFrame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        aFrame.add(applet, BorderLayout.CENTER);
        aFrame.setSize(300,200);
        applet.init();
        applet.start();
        aFrame.setVisible(true);
    }

}

4. JavaBean 요구 사항:

(1) 모든 클래스는 패키지에 배치되어야 합니다.

(2) 모든 클래스는 외부에서 액세스할 수 있도록 공개 클래스로 선언해야 합니다.

(3) 클래스의 모든 속성은 비공개를 사용하여 캡슐화되고 선언되어야 합니다.

(4) 캡슐화된 속성을 외부에서 작동해야 하는 경우 해당 setter 및 getter 메서드를 작성해야 합니다.

(5) JavaBean에는 매개변수 없는 생성자가 하나 이상 있습니다.

5. 스윙의 다양한 테두리 예시:

package thirteen;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Borders extends JPanel {static JPanel showBorder(Border b) {
        JPanel jPanel = new JPanel();
        jPanel.setLayout(new BorderLayout());
        String nm = b.getClass().toString();
        nm = nm.substring(nm.lastIndexOf('.') + 1);
        jPanel.add(new JLabel(nm, JLabel.CENTER), BorderLayout.CENTER);
        jPanel.setBorder(b);return jPanel;
    }public Borders() {
        setLayout(new GridLayout(2, 4));
        add(showBorder(new TitledBorder("Title")));
        add(showBorder(new EtchedBorder()));
        add(showBorder(new LineBorder(Color.blue)));
        add(showBorder(new MatteBorder(5, 5, 30, 30, Color.green)));
        add(showBorder(new BevelBorder(BevelBorder.RAISED)));
        add(showBorder(new SoftBevelBorder(BevelBorder.LOWERED)));
        add(showBorder(new CompoundBorder(new EtchedBorder(), new LineBorder(Color.red))));
    }public static void main(String[] args) {
        Show.inFrame(new Borders(), 500, 300);
    }     static class Show {public static void inFrame(JPanel jPanel, int width, int height) {
            String title = jPanel.getClass().toString();if (title.indexOf("class") != -1)
                title = title.substring(6);
            JFrame frame = new JFrame(title);
            frame.addWindowListener(new WindowAdapter() {public void WindowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
            frame.getContentPane().add(jPanel, BorderLayout.CENTER);
            frame.setSize(width, height);
            frame.setVisible(true);
        }
    }

}

위 내용은 Java로 창과 프로그램을 만드는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.