我做了一個簡單的嘗試來製作Shop Billing應用程序。現在一切都很好,但我現在陷入了一個問題。原始的源代碼太大,因此可能會令人困惑。所以我做了一個示例代碼來描述我的問題。這是代碼。JTextField在獲得輸入前被讀取
package experiement;
import java.awt.Container;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.awt.event.KeyListener;
public class Experiment extends JFrame implements ActionListener,KeyListener {
ArrayList<JTextField> fruitsindex;
ArrayList<JLabel>fruits;
int serial =0;
public Experiment(){
fruitsindex=new ArrayList<JTextField>();
fruits=new ArrayList<JLabel>();
addKeyListener(this);
fruits.add(new JLabel("Apple"));
fruits.add(new JLabel("Orange"));
fruits.add(new JLabel("Mango"));
fruits.add(new JLabel("Pomegranate"));
fruits.add(new JLabel("Guava"));
fruits.add(new JLabel("Papapya"));
fruits.add(new JLabel("Banana"));
setSize(800,800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
Experiment e=new Experiment();
}
@Override
public void actionPerformed(ActionEvent e) {}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyPressed(KeyEvent e) {
int c=e.getKeyCode();
switch(c){
case KeyEvent.VK_ENTER:
fruitsindex.add(new JTextField(15));
for(int i=0;i<fruitsindex.size();i++){
fruitsindex.get(i).setBounds(30,20*i,50,25);
getContentPane().add(fruitsindex.get(i));
}
getContentPane().repaint();
break;
}
}
@Override
public void keyReleased(KeyEvent e){}
}
所以,當我按下Enter
鍵,一個新的JTextField
創建在那裏我可以進入fruits
ArrayList中的索引。但我想創建JLabel
,顯示與在JTextField
中鍵入的索引對應的水果名稱。有什麼辦法可以做這個任務嗎?
隨着每一個「Enter'您'fruitsindex.add創建一個額外的'JTextfield'(新的JTextField,(15));'你到底實現 ? – c0der
當我在'JTextField'中鍵入某個數字時,應該在它的旁邊創建一個顯示水果名稱(對應於作爲索引的數字)的'JLabel'。 –
你是否必須用'Enter'創建***或者只是讓它顯示? – c0der