import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/*
*首先說明:女生和男生壹樣有潛力。
*我們班的壹個女生特別勤奮,所以編程水平比我高很多。
*^_^,言歸正傳,我還是開始註釋吧。
*/
/**
*壹個簡單的GUI(圖形用戶界面)程序。
*功能:在圖像界面中進行壹些字符串的添加。
*主要目的是為了練習圖形界面的編程方法,功能的實現沒有太難的地方。
*/
public class Show extends JFrame{
/**
*聲明變量
*/
JTextArea taIn = new JTextArea();
JTextArea taOut = new JTextArea();
JButton jbAdd = new JButton("添加");
JButton jbDel = new JButton("刪除");
JButton jbEsc = new JButton("退出");
/**
*構造函數,在new Show()時自動調用。
*/
public Show(){
JScrollPane jsIn = new JScrollPane(taIn);//壹個文本輸入區域
JScrollPane jsOut = new JScrollPane(taOut);//壹個文本輸出區域
setSize(300,400);//設置窗口大小
Container c = getContentPane();//獲得窗口的容器
JPanel pup = new JPanel(new GridLayout(2,1));//壹個2*1的容器(2行1列)
//將 輸入區域、輸出區域 放到2*1的容器中
pup.add(jsIn);
pup.add(jsOut);
JPanel pdown = new JPanel();//放置三個按鈕的容器
pdown.add(jbAdd);// 添加按鈕 添加到按鈕的容器
pdown.add(jbDel);// 刪除按鈕 添加到按鈕的容器
pdown.add(jbEsc);// 退出程序按鈕 添加到按鈕的容器
//將兩個容器放到 窗口的容器中(最大的哦)
c.add(pup,BorderLayout.CENTER);
c.add(pdown,BorderLayout.SOUTH);
//輸出框設為不可編輯
taOut.setEditable(false);
//顯示界面,這句必須有,否則看不到圖形界面
setVisible(true);
//設置窗口的退出按鈕(就是右上角的那個X號)事件
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//為三個按鈕增加事件,即鼠標點擊會調用相應功能
jbEsc.addActionListener(new Exit());
jbAdd.addActionListener(new Add());
jbDel.addActionListener(new Delete());
}
/**
*內部類,實現“添加”按鈕的功能
*/
private class Add implements ActionListener{
/**
*實現ActionListener接口必須事先的方法,
*這樣妳點擊添加按鈕,就會自動調用actionPerformed中
*的方法。
*/
public void actionPerformed(ActionEvent e){
String strIn = taIn.getText();//獲得文本輸入區域的文本
if(strIn.equals("")){//如果文本為空
JOptionPane.showMessageDialog(null,"您還沒有輸入!");
}else{//不為空,
String strOld = taOut.getText();//獲取輸出區域已有的文本
taIn.setText("");//讓輸入區域文本為空
String myPrint = strIn + "\n"+"\n" +strOld;//將 輸出區域已有的文本+輸入區域的文本
taOut.setText(myPrint);//添加到文本輸出區域,
}
}
}
/**
*實現ActionListener接口必須事先的方法,
*這樣妳點擊刪除按鈕,就會自動調用actionPerformed中
*的方法。
*/
private class Delete implements ActionListener{
public void actionPerformed(ActionEvent e){
//彈出壹個確認刪除的對話框
int opt = JOptionPane.showConfirmDialog(null, "確定刪除顯示內容嗎?", "對話框", JOptionPane.YES_NO_OPTION);
//如果點擊 是 按鈕
if(opt == JOptionPane.YES_OPTION){
taOut.setText("");//清空文本輸出區域的文本
}
}
}
/**
*實現ActionListener接口必須事先的方法,
*這樣妳點擊退出按鈕,就會自動調用actionPerformed中
*的方法。
*/
private class Exit implements ActionListener{
public void actionPerformed(ActionEvent e){
dispose();//銷毀窗口資源
}
}
/**
*在public Show()裏調用了,用來設置大小,並保證窗口在屏幕中央
*/
public void setSize(int width, int height) {
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setBounds((d.width - width) / 2, (d.height - height) / 2, width, height);
}
/**
*整個程序的入口
*/
public static void main(String[] args) {
new Show(); //創建圖形窗口實例
}
}