私は簡単にShop Billingアプリを作成しようとしました。すべては今のところ良いですが、私は今問題に固執しています。元のソースコードは大きすぎるため、混乱する可能性があります。だから私は自分の問題を記述するためのサンプルコードを作った。ここにコードがあります。私はEnter
キーを押したときに、私はfruits
のArrayListのインデックスを入力することができ入力が与えられる前に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){}
}
はそう、新しいJTextField
が作成されます。しかしJLabel
を作成して、JTextField
に入力したインデックスに対応するフルーツの名前を表示したいと考えています。この作業を行う方法はありますか?
すべての「Enter'を使用すると、 'fruitsindex.add(新しいJTextFieldの(15))による追加' JTextfield'を作成; 'あなたが何をしようとしています達成するために? – c0der
「JTextField」に数字を入力すると、果物の名前(インデックスとして機能する数字に対応する)を表示する「JLabel」をその隣に作成する必要があります。 –
あなたは***を「Enter」で作成しなければならないのですか? – c0der