2012年5月31日 星期四

Java Basic(52)-Event Handling


import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JOptionPane;

public class tuna extends JFrame{
private JTextField item1;
private JTextField item2;
private JTextField item3;
private JPasswordField passwordField;
public tuna(){
super("The title");
setLayout(new FlowLayout());
item1 = new JTextField(10);
add(item1);
item2 = new JTextField("enter text here");
add(item2);
item3 = new JTextField("uneditable");
item3.setEditable(false);
add(item3);
passwordField = new JPasswordField("mypass");
add(passwordField);
}
}







Java Basic(51)-GUI with Jframe


import java.awt.FlowLayout;
import javax.swing.JFrame; 滙入所需要的
import javax.swing.JLabel;

public class tuna extends JFrame{
private JLabel item1;
public tuna(){
super("The title Bar"); 標題
setLayout(new FlowLayout());
item1 = new JLabel("This is a sentences"); 在顯示框
item1.setToolTipText("This is gonna show up on hover");
add(item1);
}
}

import javax.swing.JFrame;


class apples{
public static void main(String[] args){
tuna bucky = new tuna();
bucky.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); X関閉
bucky.setSize(275,180); 此顯示框的大小
bucky.setVisible(true); 顯示此顯示框
}
}
這是運行時的結果: 

Java Basic(50)-Graphical User Interface GUI


import javax.swing.JOptionPane; 入使用JOptionPane


class apples{
public static void main(String[] args){
String fn = JOptionPane.showInputDialog("Enter first number");
String sn = JOptionPane.showInputDialog("Enter second number");
int num1 = Integer.parseInt(fn); 改變字符串到整數
int num2 = Integer.parseInt(sn); 改變字符串到整數
int sum = num1 + num2;
JOptionPane.showMessageDialog(null, "The answer is " +sum, "the title", JOptionPane.PLAIN_MESSAGE);
}
}

這是運行時的結果:




Java Basic(49)-Inheritance繼承


In food.java:
public class food {
public void eat(){ 必須是public的,因為private不能使用
System.out.println("I am the eat methods");
}

}
In potpie.java and tuna.java:
public class tuna extends food{
public void eat(){
System.out.println("I am the new method of tuna"); 將覆方法
}
}



public class potpie extends food{ → extends的意思是繼承 food.java
}

In apple.java:
class apples{
public static void main(String[] args){
tuna tunaObject = new tuna();
potpie potObject = new potpie();
tunaObject.eat();
potObject.eat();
}
}
這是運行時的結果:
I am the new method of tuna
I am the eat methods



Java Basic(48)-Final


public class tuna {
private int sum;
private final int NUMBER; → final 價值不能改變它
public tuna(int x){
NUMBER = x;
}
public void add(){
sum+=NUMBER; → sum 可以改變,因為它不是 final
}
public String toString(){
return String.format("sum = %d\n", sum);
}
}

class apples{
public static void main(String[] args){
tuna tunaObject = new tuna(10); →NUMBER的值是10
for(int i=0; i<5; i++){
tunaObject.add(); -->調用add方法()
System.out.printf("%s",tunaObject);
}
}
}

這是運行時的結果:
sum = 10
sum = 20
sum = 30
sum = 40
sum = 50









Java Basic(47)-Static(2)


public class tuna {
private String first;
private String last;
private static int members = 0;
public tuna(String fn,String ln){
first = fn;
last = ln;
members++;
System.out.printf("Construtor for %s %s,members in the club: %d\n",first,last,members);
}
public String getFirst(){
return first;
}
public String getLast(){
return last;
}
public static int getMembers(){
return members;
}
}


class apples{
public static void main(String[] args){
tuna member1 = new tuna("Megan","Fox");
tuna member2 = new tuna("Natalie","Portman");
tuna member3 = new tuna("Taylor","Swift");
System.out.println(tuna.getMembers());
}
}

因為靜態方法是共享所有的對象

這是運行時的結果:
Construtor for Megan Fox,members in the club: 1
Construtor for Natalie Portman,members in the club: 2
Construtor for Taylor Swift,members in the club: 3