2013-03-25 2 views
0

Привет, я хочу создавать текстовые поля на панели во время выполнения, то есть когда я даю ввод 3 и 4 в двух текстовых окнах, тогда он будет печатать текстовые поля в 3-х строках и 4 столбцах при событии нажатия кнопки в swing. Вот мой код.Создание текстового ящика Java Runtime

JFrame jf=new JFrame(); 
JPanel jp=new JPanel(); 
JTextField jt1=new JTextField(); 
JTextField jt2=new JTextField(); 
JLabel jl1=new JLabel("Enter Row"); 
JLabel jl2=new JLabel("Enter Column"); 
JButton jb1=new JButton("OK"); 
JButton jb2=new JButton("Cancel"); 

jf.setContentPane(jp); 
jp.setLayout(null); 
jp.setBackground(Color.CYAN); 
jp.add(jb1); 
jp.add(jt1); 
jp.add(jt2); 
jp.add(jl1); 
jp.add(jl2); 
jp.add(jb2); 

jf.setVisible(true); 
jf.setSize(500,500); 

jt1.setBounds(200,20,50,30); 
jt2.setBounds(200,60,50,30); 

jl1.setBounds(90, 20, 80, 30); 
jl2.setBounds(90,60,80,30); 
jb1.setBounds(150, 100, 80, 80); 

jb1.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
} 
+0

Пожалуйста, поделитесь своей SRC, где вы хотите добавить эту функциональность – Jabir

+0

все, что вы делаете, чтобы создать кнопку, просто сделать то же самое внутри actionPerformed после определенного события запускаются –

+0

@Ravindra Gullapalli взгляда я хочу сделать так , У меня есть два текстовых поля, в первом я поставлю значение 3, а во втором я введу значение 4, и у меня есть еще одна кнопка, теперь моя цель - когда я нажимаю кнопку, чтобы на панели появлялись текстовые поля 3 * 4 = 12. текстовые поля должны отображаться в формате строк и столбцов. – OmD

ответ

0

Вот примерный код, без каких-либо подтверждений и соображений компоновки. Вы можете использовать это для дальнейшего выполнения своих требований.

public class ClsCreateTextBoxes extends javax.swing.JFrame{ 
    private javax.swing.JPanel jpInputPanel = null; 
    private javax.swing.JTextField jtfRows = null; 
    private javax.swing.JTextField jtfColumns = null; 
    private javax.swing.JButton jbCreateMatrix = null; 
    private javax.swing.JPanel jpMatrixPanel = null; 

    public ClsCreateTextBoxes(){ 
     setSize(400, 400); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     getContentPane().setLayout(new java.awt.BorderLayout()); 
     jpInputPanel = new javax.swing.JPanel(new java.awt.FlowLayout()); 
     jtfRows = new javax.swing.JTextField(10); 
     jpInputPanel.add(jtfRows); 
     jtfColumns = new javax.swing.JTextField(10); 
     jpInputPanel.add(jtfColumns); 
     jbCreateMatrix = new javax.swing.JButton("Create"); 
     jbCreateMatrix.addActionListener(new java.awt.event.ActionListener(){ 
      public void actionPerformed(java.awt.event.ActionEvent ae){ 
       // Assuming proper number is given 
       jpMatrixPanel.setLayout(new java.awt.GridLayout(Integer.parseInt(jtfRows.getText()), Integer.parseInt(jtfColumns.getText()))); 
       for(int rowIndex = 0; rowIndex < Integer.parseInt(jtfRows.getText()); rowIndex ++){ 
        for(int columnIndex = 0; columnIndex < Integer.parseInt(jtfColumns.getText()); columnIndex ++){ 
         jpMatrixPanel.add(new javax.swing.JTextField(10)); 
         pack(); 
        } 
       } 
      } 
     }); 
     jpInputPanel.add(jbCreateMatrix); 
     getContentPane().add(jpInputPanel, java.awt.BorderLayout.NORTH); 
     jpMatrixPanel = new javax.swing.JPanel(); 
     getContentPane().add(jpMatrixPanel, java.awt.BorderLayout.SOUTH); 
     pack(); 
    } 
    public static void main(String[] args){ 
     ClsCreateTextBoxes createdTextBoxes = new ClsCreateTextBoxes(); 
     createdTextBoxes.setVisible(true); 
    } 
} 
+0

Я думаю, что вы правы. Я попробовал его, а также никаких ошибок не было, но текстовые поля не отображались. – OmD

0

Вы можете использовать цикл в методе actionPerformed() на основе значений получать от текстовых полей

Смежные вопросы