更新時間:2022-12-26 10:52:22 來源:動力節(jié)點 瀏覽1352次
Java怎么做窗口程序?動力節(jié)點小編來給大家舉例說明。
init()方法:程序片第一次被創(chuàng)建,初次運行初始化程序片時調用。
stop()方法:每次程序片從web瀏覽器的視線中離開時調用,時程序片能關閉代價高昂的操作;同樣在調用destroy()前調用。
destroy()方法:程序片不再需要,將它從頁面中卸載時調用。
start()方法:每當程序片進入web瀏覽器中,并且允許程序片啟動他的常規(guī)操作時調用(特殊的程序片被stop()關閉);同樣在init()后調用。
paint()方法:基礎類Component的一部分(繼承結構中上朔三級)。作為update()的一部分調用,以便對程序片的畫布進行特殊的描繪。
(1)先在類中添加addXXXXXListener()方法。
(2)重寫執(zhí)行接口的方法。
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");
}
}
}
(1)main()方法中新建一個Frame類,并將applet的衍生類給其初始化。
(2)繼承WindowAdapter類,并重寫windowClosing()方法。
(3)執(zhí)行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);
}
}
(1)所有的類必須放在一個包中,在web中沒有包是不存在的。
(2)所有的類必須聲明為public class,這樣才能夠被外部訪問。
(3)類中所有的屬性都必須封裝,使用private聲明。
(4)封裝的屬性如果需要被外部所操作,則必須編寫對應的setter,getter方法。
(5)一個JavaBean中至少存在一個無參構造方法。
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);
}
}
}