English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

要如何寫才能將 輸入焦點所在的位置傳回 並印出TextField 的名稱 ??
import java.awt.*;
public class trouble{
static Frame frm=new Frame();
static int x=50;
public static void main(String args[])
{
frm.setBackground(new Color(150,150,0));
frm.setLayout(null);
frm.setSize(400,300);
TextField txf[]=new TextField[8];

for(byte i=0;i<8;i ){
txf[i]=new TextField(" " );
txf[i].setBounds(50,x,50,18);
x=x 20;
frm.add(txf[i]);} // 加入文字方塊
frm.setVisible(true);
System.out.print(" ");
}
}

2007-02-23 18:13:40 · 2 個解答 · 發問者 ? 4 in 電腦與網際網路 程式設計

謝謝您的回答.........但我還是無法了解要如何才能傳回 並印出TextField 的名稱 (例如: txf[1]. 或 txf[5].或物件的其他名稱 ).

2007-02-27 15:31:40 · update #1

感謝兩位的回答,但這並不是我的問題所在. ωετμοφντ 的回答雖然較為接近問題點.但所傳回的物件名稱 會用TextField 第一次輸入的焦點 做順序而傳回 TextField 輸入的順序.我想要的是傳回
setBounds(50,x,50,18) 這些位置的確實物件名稱例如: txf[1]. 或 txf[2].或物件的其他名稱 ,照理說.我如果點 Bounds(50,20,50,18) 的物
件是要傳回 txf[0]. 如果點 Bounds(50,40,50,18) 的物件則傳回txf[1]..

2007-03-04 04:57:50 · update #2

White Area 的指導.好像是我所問的問題寫的 太含糊了.以致並非我所想的.但我還是感謝你!!謝謝您

2007-03-04 05:04:22 · update #3

2 個解答

不知道這樣寫有沒有符合你的要求
import java.awt.*;
public class trouble
{
 static Frame frm=new Frame(); 
 static int x=50;
 public static void main(String args[])
 {
  frm.setBackground(new Color(150,150,0));
  frm.setLayout(null); 
  frm.setSize(400,300); 
  TextField txf[]=new TextField[8];
  for(byte i=0;i<8;i++)
  {
   txf[i]=new TextField("");
   txf[i].setBounds(50,x,50,18);
   x=x+20;
   frm.add(txf[i]);
   /*Revised*/
   String str;//宣告一字串
   str="txf["+i+"]";//將字串跟數字組合
   txf[i].setText(str);//設置在每個文字方塊中
   /*Revised*/
  }
   //加入文字方塊
   frm.setVisible(true); 
   System.out.print("");
 }
}
參考看看吧 , 有問題儘管問

2007-03-03 21:04:11 · answer #1 · answered by Tony Pai 5 · 0 0

請參考我的做法

import java.awt.*;
import java.awt.event.*;
public class trouble implements FocusListener {
Frame frm=new Frame();
int x=50;
TextField focusTF = new TextField();

public static void main(String args[]) {
trouble tr = new trouble();
tr.show();
}

public void show()
{
frm.setBackground(new Color(150,150,0));
frm.setLayout(null);
frm.setSize(400,300);
TextField txf[]=new TextField[8];
for(byte i=0;i<8;i ){
txf[i]=new TextField("" i);
txf[i].setBounds(50,x,50,18);
x=x 20;
txf[i].addFocusListener(this);
frm.add(txf[i]);
} // 加入文字方塊
focusTF.setBounds(50,x,50,18);
frm.add(focusTF);
frm.setVisible(true);
System.out.print(' ');
}

public void focusGained(FocusEvent e) {
Object obj = e.getSource();
if (obj instanceof TextField) {
focusTF.setText(((TextField)obj).getText());
}
}

public void focusLost(FocusEvent e) {}
}

2007-02-27 06:14:16 · answer #2 · answered by ? 7 · 0 0

fedest.com, questions and answers