① java JTextField里的值怎麼獲取
凡是e.e.getKeyCode()方法的返回值,一律要用VK_開頭的來進比較
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()==KeyEvent.VK_CONTROL){
//dosomething
}
}
KeyEvent.CTRL_MASK,是用來處理修飾碼的,不是用在這里。
if((e.getModifiersEx()&KeyEvent.CTRL_DOWN_MASK)!=0){
}
② JAVA反射Field
//直接上例子代碼import java.lang.reflect.Field;public class Test {
public final int a=5;
public static void main(String[] args) {
Test test = new Test();
try {
Field field = Test.class.getField("a");//指定要獲取的欄位名
//從Test對象中獲取一個整形值;相應的也有getFloat()/getBoolean()等等方法。。詳見JDK文檔
System.out.println(field.getInt(test));
//如果不能確定是什麼數據類型可以返回一個Object
Object obj = field.get(test);
System.out.println(obj);
System.out.println(obj.getClass().getName());//獲取對象的數據類型
} catch (Exception e) {
e.printStackTrace();
}
}
}
③ java中的映射Field,如果有個實例field裡面只有一個非靜態啊欄位,用get()獲得的時候,為什麼要傳參數
如果是靜態變數,即類變數
需要field.get(這里傳Class實例)
如果是對象變數
需要field.get(這里傳對象)
這個參數是必須的,否則get無法確定你要從哪兒獲取這個field的值
例子:
Field field = Integer.class.getDeclaredField("MAX_VALUE");//靜態變數
System.out.println(field.get(Integer.class));//輸出2147483647 即Integer.MAX_VALUE
Integer i = new Integer(100);
field = Integer.class.getDeclaredField("value");//非靜態
field.setAccessible(true);
field.get(i);//這里必須用對象
System.out.println(field.get(i));//輸出100