专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java窗口程序实例

Java窗口程序实例

更新时间:2022-12-26 10:52:22 来源:动力节点 浏览845次

Java怎么做窗口程序?动力节点小编来给大家举例说明。

1.Java之创建窗口和程序片详解,如下所示:

init()方法:程序片第一次被创建,初次运行初始化程序片时调用。

stop()方法:每次程序片从web浏览器的视线中离开时调用,时程序片能关闭代价高昂的操作;同样在调用destroy()前调用。

destroy()方法:程序片不再需要,将它从页面中卸载时调用。

start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭);同样在init()后调用。

paint()方法:基础类Component的一部分(继承结构中上朔三级)。作为update()的一部分调用,以便对程序片的画布进行特殊的描绘。

2.事件模型:

(1)先在类中添加addXXXXXListener()方法。

(2)重写执行接口的方法。

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()方法中新建一个Frame类,并将applet的衍生类给其初始化。

(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)所有的类必须放在一个包中,在web中没有包是不存在的。

(2)所有的类必须声明为public class,这样才能够被外部访问。

(3)类中所有的属性都必须封装,使用private声明。

(4)封装的属性如果需要被外部所操作,则必须编写对应的setter,getter方法。

(5)一个JavaBean中至少存在一个无参构造方法。

5.Swing各种边框的一个例子:

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);
        }
    }
}

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>