要如何寫才能將 輸入焦點所在的位置傳回 並印出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
不知道這樣寫有沒有符合你的要求
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⤋