Java 如何将用户的输入从JTextFIeld设置到JTable,';我的代码不起作用

Java 如何将用户的输入从JTextFIeld设置到JTable,';我的代码不起作用,java,swing,user-interface,jtable,jtextfield,Java,Swing,User Interface,Jtable,Jtextfield,我需要从用户输入的项目中获取名称、姓氏等信息,以便保存到Jtable,我有table和jtextfield,但当用户获取输入信息时,他们不会保存到table。 该表是显示的,但不是用户输入的。 这是我的密码: enter code here public class Projektni extends JFrame { public final JTextField ime = new JTextField(10); public final JTextField prezime = new J

我需要从用户输入的项目中获取名称、姓氏等信息,以便保存到Jtable,我有table和jtextfield,但当用户获取输入信息时,他们不会保存到table。 该表是显示的,但不是用户输入的。 这是我的密码:

enter code here public class Projektni extends JFrame {
public final JTextField ime = new JTextField(10);
public final JTextField prezime = new JTextField(10);
public final JTextField index = new JTextField(10);
public DefaultListModel podaci = new DefaultListModel();
public JList lista = new JList(podaci);
String kolone[] = {"ID","Name","Age"};
   //prazan konstruktor gde implementiramo i definisemo dugmice,polja za upisivanje podataka i                           osluskivace
  public Projektni()
    {

     DefaultTableModel model = new DefaultTableModel(); 
      JTable table = new JTable(model); 
       String nextRowId = Integer.toString(model.getRowCount());
       model.addColumn("Ime"); 
       model.addColumn("Prezime"); 
       model.addColumn("Indeks");
        model.addRow((new Object[] { 
          nextRowId,
          ime.getText(),
          prezime.getText(),
          index.getText()}


           ));

      repaint();

    JPanel pane2=new JPanel (new GridLayout(6, 7));   
      pane2.add(table);
     pane2.setVisible(true);


    ime.setPreferredSize(new Dimension(200,80));
    prezime.setPreferredSize(new Dimension(200,80));
    index.setPreferredSize(new Dimension(150,40));
    JPanel panel=new JPanel (new GridLayout(6, 7));
    panel.add(new JLabel("Ime studenta:"));
    panel.add(ime);
        panel.add(new JLabel("Prezime studenta:"));
        panel.add(prezime);
        panel.add(new JLabel("Broj indeksa studenta:"));
     panel.add(index);
         panel.setBackground(Color.cyan);

      String[] seminari = {"Microsoft","MAC","Java"};
      final JComboBox cek = new JComboBox(seminari);
        panel.add(cek);

    JButton upisibtn=new JButton("Upisi");
      upisibtn.setPreferredSize(new Dimension(30,30));
       JTabbedPane tab = new JTabbedPane();
   getContentPane().add(tab);
   tab.add("Tab1",panel);
   tab.add("Tab2",pane2);

      upisibtn.addActionListener(new ActionListener()
  {

@Override

   public void actionPerformed(ActionEvent e)
     {
    try{
        String p=nazivZaUnosNaziva()+" "+nazivZaUnosPrezimena()+" "+nemaIndeX()+"     "+cek.getSelectedItem()+"\n";
     String s=ime.getText()+" "+prezime.getText()+" "+index.getText()+"  "+cek.getSelectedItem()+"\n";

    Upisi.upisi(s);
    }
    catch(NemaNaziv|NemaIndeks|NemaPrezime ex){
        JOptionPane.showMessageDialog(null, ex);

    }





       }
      }
             );

   //Dugme prikazi ,koji prikazuje upisane podatke preko klase citaj.
      JButton citajbtn=new JButton("Prikazi");
        citajbtn.setPreferredSize(new Dimension(30,30));
       citajbtn.addActionListener(new ActionListener()
       {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        for(String s:Citaj.citaj())
     podaci.addElement(s);

    }
     });

        //Dodavanje komponenata na panel.
        panel.add(upisibtn);
      panel.add(citajbtn);

     panel.add(lista);
      }

       //Vraca string naziva studenta,ukoliko nije upisan vraca izuzetak
       public String nazivZaUnosNaziva() throws NemaNaziv {
        String naziv = ime.getText();
        if (naziv.equals("")) {
        throw new NemaNaziv("Niste uneli naziv studenta. ");
    }
    return naziv;
        }
        //Vraca string prezime studenta,ukoliko nije upisan vraca izuzetak
      public String nazivZaUnosPrezimena() throws NemaPrezime {
    String prez = prezime.getText();
    if (prez.equals("")) {
        throw new NemaPrezime("Niste uneli prezime studenta. ");
    }
    return prez;
}
//Vraca string index studenta,ukoliko nije upisan vraca izuzetak
 public String nemaIndeX() throws NemaIndeks {
    String indeks = index.getText();
    if (indeks.equals("")) {
        throw new NemaIndeks("Niste unelii ndeks studenta. ");
    }
    return indeks;
}






//pokretacki metod
 public static void main(String[] args) {

    Projektni tp = new Projektni();
    tp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    tp.setVisible(true);
    tp.setSize(600, 800);

}


}
执行上述代码时,文本字段不包含任何文本

如果希望用户输入文本,然后将文本添加到表中,则需要向GUI中添加一个JButton。然后,当用户单击按钮时,您可以从文本字段中获取文本,并向TableModel添加新行

执行上述代码时,文本字段不包含任何文本

如果希望用户输入文本,然后将文本添加到表中,则需要向GUI中添加一个JButton。然后,当用户单击按钮时,您可以从文本字段中获取文本,并向TableModel添加新行

执行上述代码时,文本字段不包含任何文本

如果希望用户输入文本,然后将文本添加到表中,则需要向GUI中添加一个JButton。然后,当用户单击按钮时,您可以从文本字段中获取文本,并向TableModel添加新行

执行上述代码时,文本字段不包含任何文本



如果希望用户输入文本,然后将文本添加到表中,则需要向GUI中添加一个JButton。然后,当用户单击按钮时,您可以从文本字段中获取文本,并向TableModel添加新行。

您的代码有许多未显示的未解析代码引用,这意味着它将不会为我们编译或运行,因此我们无法重现您的代码问题。如果CAMKICR的答案(1 +它)不能解决你的问题,那么考虑花一点时间来创建和发布一个代码,它对未显示的代码有很多未解决的引用,这意味着它不会为我们编译和运行,因此我们不能用代码复制您的问题。如果CAMKICR的答案(1 +它)不能解决你的问题,那么考虑花一点时间来创建和发布一个代码,它对未显示的代码有很多未解决的引用,这意味着它不会为我们编译和运行,因此我们不能用代码复制您的问题。如果CAMKICR的答案(1 +它)不能解决你的问题,那么考虑花一点时间来创建和发布一个代码,它对未显示的代码有很多未解决的引用,这意味着它不会为我们编译和运行,因此我们不能用代码复制您的问题。如果CAMKICR的答案(1 +它)没有解决你的问题,那么考虑花一点时间来创建和发布一个感谢,你能给我一些简单的例子吗?@蓝精灵:当然你可以查阅一个JButt教程,至少尝试创建一个JButt,添加一个ActualListor到它,然后更新你的JTABLE,是吗?@BlueMaster:学习编程(以及生活中的大多数事情)的秘诀是能够学到一般的一课,然后将其应用到特定的环境中。如果您知道如何从一个JTextField获取文本,我无法想象您不知道如何从三个JTextField获取文本。这对我来说有点难以相信,因为它与1完全相同,只是你的代码中有三行而不是一行。
这对我来说有点难以相信,因为它与1完全相同,只是你的代码中有三行而不是一行。
我完全同意。@BlueMaster:好的,你得到了三行字符串,现在,您必须在actionPerformed方法中使用它们。继续前进。谢谢,你能给我举个简单的例子吗?@BlueMaster:你当然可以查阅JButton教程,至少尝试创建一个JButton,在其中添加一个ActionListener,然后更新你的JTable,对吗?@BlueMaster:学习编程的秘诀(以及生活中的大部分事情)就是能够学到一般的一课,然后应用到具体的环境中。如果您知道如何从一个JTextField获取文本,我无法想象您不知道如何从三个JTextField获取文本。这对我来说有点难以相信,因为它与1完全相同,只是你的代码中有三行而不是一行。
这对我来说有点难以相信,因为它与1完全相同,只是你的代码中有三行而不是一行。
我完全同意。@BlueMaster:好的,你得到了三行字符串,现在,您必须在actionPerformed方法中使用它们。继续前进。谢谢,你能给我举个简单的例子吗?@BlueMaster:你当然可以查阅JButton教程,至少尝试创建一个JButton,在其中添加一个ActionListener,然后更新你的JTable,对吗?@BlueMaster:学习编程的秘诀(以及生活中的大部分事情)就是能够学到一般的一课,然后应用到具体的环境中。如果您知道如何从一个JTextField获取文本,我无法想象您不知道如何从三个JTextField获取文本。这对我来说有点难以相信,因为它与1完全相同,只是你的代码中有三行而不是一行。
这对我来说有点难以相信,因为它与1完全相同,只是你的代码中有三行而不是一行。
我完全同意。@BlueMaster:好的,你得到了三行字符串,现在,您必须在actionPerformed方法中使用它们。继续前进。谢谢,你能给我举个简单的例子吗?@BlueMaster:你当然可以查阅JButton教程,至少尝试创建一个JButton,在其中添加一个ActionListener,然后更新你的JTable,对吗?@BlueMaster:学习编程的秘诀(以及生活中的大部分事情)就是能够学到一般的一课,然后应用到具体的环境中。如果您知道如何从一个JTextField获取文本,我无法想象您不知道如何获取
DefaultTableModel model = new DefaultTableModel(); 
      JTable table = new JTable(model); 
       String nextRowId = Integer.toString(model.getRowCount());
       model.addColumn("Ime"); 
       model.addColumn("Prezime"); 
       model.addColumn("Indeks");
        model.addRow((new Object[] { 
          nextRowId,
          ime.getText(),
          prezime.getText(),
          index.getText()}