2016年2月14日 星期日

JAVA GUI ChangeColor.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ChangeColor extends JPanel implements ActionListener
{
JButton red = new JButton("紅");
JButton orange = new JButton("橙色");
JButton yellow = new JButton("黃");
JButton green = new JButton("變綠色");
JButton blue = new JButton("藍");

public static void main(String[] args)
{
//建立ChangeColor (JPanel 的子類別)物件
ChangeColor p = new ChangeColor();
//將 JPanel 物件加到JFrame("變換視窗背景");
JFrame f = new JFrame("變換視窗背景");
f.getContentPane().add(p);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(360,80);
f.setVisible(true);
}
public ChangeColor()
{
//將五個按鈕元件加到面板中
add(red);
add(orange);
add(yellow);
add(green);
add(blue);
//將五個按鈕的頃聽者都設為此物件
red.addActionListener(this);
orange.addActionListener(this);
yellow.addActionListener(this);
green.addActionListener(this);
blue.addActionListener(this);
}
//五個按鈕的事件處理方法
public void actionPerformed(ActionEvent e)
{
JButton s = (JButton) e.getSource(); //取得產生事件的按鈕
//將面板背景顏色換成按鈕對應的顏色
if(s ==red ) setBackground(Color.red);
else if(s == orange) setBackground (Color.orange);
else if(s == yellow) setBackground (Color.yellow);
else if(s == green) setBackground(Color.green);
else setBackground(Color.blue);
}
}

JAVA GUI TempConverter.java

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class TempConverter
{
JFrame myframe = new JFrame("華氏與攝氏溫度的轉換");
JTextField result = new JTextField(); //轉換結果顯示區
JTextField degree = new JTextField(); //輸入區
JButton f2c = new JButton("華氏轉攝氏");
JButton c2f = new JButton("攝氏轉華氏");
public static void main(String[] args)
{
TempConverter test = new TempConverter();
}
public TempConverter()
{
//先取得ContentPane物件
Container contentPane = myframe.getContentPane();

//將5個元件加到BroderLayout的五個位置
contentPane.add(new JLabel("請輸入溫度"),BorderLayout.NORTH);
contentPane.add(f2c,BorderLayout.EAST);
contentPane.add(c2f,BorderLayout.WEST);
contentPane.add(degree,BorderLayout.CENTER);
contentPane.add(result,BorderLayout.SOUTH);
//華氏轉攝氏按鈕的 ActionListener()
f2c.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
//取得束入區的字串,並轉成浮點數
double f = Double.parseDouble(degree.getText());
//進行轉換,並將結果寫道視窗最下方
result.setText("華氏 "+f+" 度等於攝氏" + ((f-32)*5/9) + " 度");
}
catch(NumberFormatException ne)
{
degree.setText(""); //發生例外時清除輸入區內容
}
}
}
);

//攝氏 轉華氏按鈕的ActionListener()
c2f.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e)
{
try{
//取得輸入區的字串,並轉成浮點數
double c = Double.parseDouble(degree.getText());
//進行轉換,並將結果寫道視窗最下方
result.setText("攝氏 " + c + "  度等於華氏 " + (c/5*9+32)+"度");
}
catch(NumberFormatException ne)
{
degree.setText(""); //發生例外時清除輸入區內容
}
}
}
);
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myframe.setSize(400,120);
myframe.setVisible(true);
}
}

JAVA GUI MyKeyAdapter.java

import java.awt.event.*;
import javax.swing.*;

public class MyKeyAdapter extends KeyAdapter
{
JFrame myframe = new JFrame("Adapetr 類別示範");
//用來顯示訊息的標籤
JLabel whatkey = new JLabel("1請輸入任一字元!");
public static void main(String[] args)
{
MyKeyAdapter test = new MyKeyAdapter();
test.init();
}
//建立元件、將元件加入視窗、顯示視窗的方法
public void init()
{
myframe.addKeyListener(this); //設定按鍵事件的傾聽者

myframe.getContentPane().add(whatkey);
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myframe.setSize(240,120);
myframe.setVisible(true);
}
//繼承KeyAdapter的方法
public void keyTyped(KeyEvent e)
{
whatkey.setText("您剛剛輸入的是->"+e.getKeyChar());

}//KeyPressed()、KeyReleased() 方法都不用管
}

JAVA GUI AnonymousListener.java

import javax.swing.*;
import java.awt.event.*;

public class AnonymousListener extends JFrame
{
int act = 0; //用來紀錄按鈕被按的次數
public static void main(String[] args)
{
AnonymousListener test = new AnonymousListener();
}
//用建構方法建立元件、將元件加入視窗、顯示視窗
public AnonymousListener()
{
setTitle("Listener 示範");
JButton mybutton = new JButton("換個標題");
//addActionListener() 的參數匿名類別物件
mybutton.addActionListener(
//以下建立的匿名類別物件為按鈕物件的傾聽者
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
act++; //將按鈕次數加一
setTitle("發生"+ act+"次按鈕事件");
}
}
);
getContentPane().add(mybutton);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(420,140);
setVisible(true);
}
}

JAVA GUI AnonymousDemo.java

public class AnonymousDemo
{
public static void main(String[] args)
{
final int a= 10;
//匿名類別
(new Object()  
  {
int b = 10000; //匿名類別成員
//匿名類別的方法
public void show()
{
System.out.println("匿名類別:");
System.out.println("this ->b= " +b);
System.out.println("main() ->= " +a);
}
}).show(); //產生匿名類別物件後即呼叫奇show()方法
}
}

2016年2月13日 星期六

JAVA GUI InnerDemo.java

import javax.swing.*;
import java.awt.event.*;

public class InnerDemo extends JFrame
{
int act = 0; //用來紀錄按鈕被按的次數
public static void main(String[] args)
{
InnerDemo test = new InnerDemo();
}
//用建構方法建立元件 ,將元件加入視窗、顯示視窗
public InnerDemo()
{
setTitle("Listener2 示範");
JButton mybutton = new JButton("換個標題");
JButton mybutton1 = new JButton("換個標題2");
mybutton.addActionListener(new InnerListener());
//內部類別物件為傾聽者
getContentPane().add(mybutton);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(420,140);
setVisible(true);
}
//實做 ActionListener 介面的內部類別
class InnerListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
act++; //存取外部類別的act成員
setTitle("2發生"+act+"次按鈕事件");
}
}
}

JAVA GUI SImpleListener.java

import javax.swing.*;
import java.awt.event.*; // 要處理事件必須匯入此套件
public class SimpleListener extends JFrame implements ActionListener
{
int act = 0; //用來紀錄按扭被按得次數變數
public static void main(String[] args)
{
SimpleListener test = new SimpleListener();

}
public SimpleListener()
{
setTitle("Listener 示範"); //設定視窗標題
JButton mybutton = new JButton("換個標題");
//通知按鈕物件:本物件要當傾聽者
mybutton.addActionListener(this);
getContentPane().add(mybutton);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(420,140);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
act++; //將按鈕次數加一
//將視窗標題攔改為顯示按鈕次數
setTitle("發生 " + act + " 次按鈕事件");
}
}