2014-09-13 69 views
0

我有項目從用戶輸入像姓名,姓氏,保存到Jtable,我有表和jtextfiled,但是當用戶得到輸入時,他們不保存到表格。 該表顯示,但不是用戶輸入。 這裏是我的代碼:如何讓用戶輸入從JTextFIeld到JTable,在我的代碼沒有工作

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); 

} 


} 
+2

您的代碼中有很多未解析的代碼引用未顯示,這意味着它不會爲我們編譯或運行,所以我們無法重現您的代碼問題。如果camickr的回答(1+以上)不能解決您的問題,那麼請考慮花一點時間來創建併發佈一個[最小示例程序](http://stackoverflow.com/help/mcve) – 2014-09-13 14:24:57

回答

3
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()} 

在執行上面的代碼中的文本字段不包含任何文本。

如果你想讓用戶輸入文本,然後將文本添加到表中,那麼你需要添加一個JButton到你的GUI。然後,當用戶單擊按鈕時,您可以從文本字段中獲取文本,並向TableModel添加新行。

+0

謝謝,你能給我有一個簡單的例子嗎? – 2014-09-13 14:28:45

+0

@BlueMaster:當然你可以查看一個JButton教程,並且至少嘗試創建一個JButton,爲它添加一個ActionListener,然後更新你的JTable,對吧? – 2014-09-13 14:35:57

+0

我知道如何從jtextfield拿起,但有一個jtetfield和一個jbutton,但我不知道如何用一個按鈕接收3個用戶從3 jtextfield輸入。 – 2014-09-13 14:44:31

相關問題