Мне нужно создать Jtextfield, в котором пользователю будет предложено ввести около 30 символов. Я создал 15 отдельных Jtextfields и заставил пользователя вводить только 2 символа в каждое Jtextfield. Когда пользователь вводит два символа в первое поле, он автоматически переходит к следующему поле и то же самое продолжается, пока не достигнет 30 символов.
Мой вопрос в том, есть ли лучший способ создать Jtextfield. Вместо создания отдельных 15 Jtextfields мы можем создать одно Jtextfield и разделить его на 15 разделов и обеспечить тот же поток для ввода символов. Если это не очень хорошее решение, пожалуйста, помогите мне найти лучшее решение. заранее спасибо
Мой код
cmd1=new JLabel("Command");
cmd1.setBounds(20, 76, 70, 30);
cmd1.setFont(new Font("serif",Font.BOLD,13));
commandpanel.add(cmd1);
cmdtext1=new JTextField();
cmdtext1.setBounds(80, 80,70,25);
commandpanel.add(cmdtext1);
examplelabel=new JLabel("Enter HexaDecimal values (For example : 45,1E) ");
examplelabel.setBounds(260, 50, 250,25);
examplelabel.setFont(new Font("serif",Font.PLAIN,12));
commandpanel.add(examplelabel);
delete1=new JButton("Delete");
delete1.setBounds(606, 80, 70, 25);
commandpanel.add(delete1);
command11=new JTextField(2);
command11.setBounds(155,80,25,25);
command11.setDocument(new JTextFieldLimit(2));
command11.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command11.getText().length() == 2)
{
command12.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command11);
command12=new JTextField();
command12.setBounds(180,80,25,25);
command12.setDocument(new JTextFieldLimit(2));
command12.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command12.getText().length() == 2)
{
command13.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command12);
command13=new JTextField();
command13.setBounds(205,80,25,25);
command13.setDocument(new JTextFieldLimit(2));
command13.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command13.getText().length() == 2)
{
command14.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command13);
command14=new JTextField();
command14.setBounds(230,80,25,25);
command14.setDocument(new JTextFieldLimit(2));
command14.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command14.getText().length() == 2)
{
command15.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command14);
command15=new JTextField();
command15.setBounds(255,80,25,25);
command15.setDocument(new JTextFieldLimit(2));
command15.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command15.getText().length() == 2)
{
command16.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command15);
command16=new JTextField();
command16.setBounds(280,80,25,25);
command16.setDocument(new JTextFieldLimit(2));
command16.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command16.getText().length() == 2)
{
command17.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command16);
command17=new JTextField();
command17.setBounds(305,80,25,25);
command17.setDocument(new JTextFieldLimit(2));
command17.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command17.getText().length() == 2)
{
command18.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command17);
command18=new JTextField();
command18.setBounds(330,80,25,25);
command18.setDocument(new JTextFieldLimit(2));
command18.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command18.getText().length() == 2)
{
command19.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command18);
command19=new JTextField();
command19.setBounds(355,80,25,25);
command19.setDocument(new JTextFieldLimit(2));
command19.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command19.getText().length() == 2)
{
command110.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command19);
command110=new JTextField();
command110.setBounds(380,80,25,25);
command110.setDocument(new JTextFieldLimit(2));
command110.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command110.getText().length() == 2)
{
command111.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command110);
command111=new JTextField();
command111.setBounds(405,80,25,25);
command111.setDocument(new JTextFieldLimit(2));
command111.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command111.getText().length() == 2)
{
command112.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command111);
command112=new JTextField();
command112.setBounds(430,80,25,25);
command112.setDocument(new JTextFieldLimit(2));
command112.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command112.getText().length() == 2)
{
command113.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command112);
command113=new JTextField();
command113.setBounds(455,80,25,25);
command113.setDocument(new JTextFieldLimit(2));
command113.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command113.getText().length() == 2)
{
command114.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command113);
command114=new JTextField();
command114.setBounds(480,80,25,25);
command114.setDocument(new JTextFieldLimit(2));
command114.addKeyListener(new KeyListener()
{
@Override
public void keyTyped(KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e)
{
// TODO Auto-generated method stub
if(command114.getText().length() == 2)
{
command115.requestFocus();
}
}
@Override
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
}
});
commandpanel.add(command114);
command115=new JTextField();
command115.setBounds(505,80,25,25);
command115.setDocument(new JTextFieldLimit(2));
commandpanel.add(command115);
add1=new JButton("Add");
add1.setBounds(547, 80,56,25);
add1.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
add1();
}
});
commandpanel.add(add1);
DocumentFilter
вместоKeyListener
, см. Реализация фильтра документов и примеры DocumentFilter для получения дополнительной информации. - person MadProgrammer   schedule 13.08.2015