Проблема в передаче значения ячейки JTable одной формы JFrame в JTextField другой формы - PullRequest
1 голос
/ 13 апреля 2011


У меня есть две формы JFrame-SelectContactsfrm.java и Taskfrm.java.В файле SelectContactsfrm есть JTable для отображения контактов. Когда пользователь выбирает контакт из JTable и когда он нажимает кнопку ОК, выбранные значения должны быть скопированы в JTextField в Taskfrm.java.

Taskfrm.java JTextField's name is-txtContacts и модификатор доступа is-public

Ниже приведен код, который я написал для действия кнопки OK SelectContactsfrm в действииPerformed.Button name-btnOK

private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {
    // Code to get the selected rows value and paste Contact's full name in Taskfrm's txtContacts JTextField:        

    selrow=ctable.getSelectedRow();
    selcol=ctable.getSelectedColumn();
    Object value=ctable.getModel().getValueAt(selrow,1);
    new Taskfrm().txtContacts.setText(value.toString());                                                            

    //Just to check whether I get the correct values or not.                                      
    System.out.println("selrow=="+selrow);
    System.out.println("selcol=="+selcol);
    System.out.println("txtContacts=="+value);

}  

Я вижу правильные выбранные значения в выходных данных, но не понимаю, почему это значение не было установлено в JTextField из Taskfrm. В конструкторе Taskfrm есть только initComponents (). Есть ли способ прикрепить файлы классов вместо вставки?

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

установил его видимость и внес изменения в конструктор Taskfrm. Теперь он работает.

new Taskfrm(value);  
new Taskfrm(value).setVisible(true);
1 голос
/ 13 апреля 2011

Это зависит от того, как настроен Taskfrm и что находится в его конструкторе.Я пробовал что-то вроде этого, и это работает

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class ClassA extends JFrame {
    JTextField text;

    public ClassA() {
        JLabel l = new JLabel("Name: ");
        text = new JTextField(20);
        JButton b = new JButton("Send");
        setLayout(null);
        l.setBounds(10, 10, 100, 20);
        text.setBounds(120, 10, 150, 20);
        b.setBounds(120, 40, 80, 20);
        add(l);
        add(text);
        add(b);
        setVisible(true);
        setSize(300, 100);
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                new ClassB().text.setText(ClassA.this.text.getText());
            }
        });
    }

    public static void main(String a[]) {
        new ClassA();
    }
}

class ClassB extends JFrame {
    JTextField text;

    public ClassB() {
        JLabel l = new JLabel("Name: ");
        text = new JTextField(20);

        setLayout(null);
        l.setBounds(10, 10, 100, 20);
        text.setBounds(120, 10, 150, 20);

        add(l);
        add(text);

        setVisible(true);
        setSize(300, 100);

    }
}
...