我正在制作一个Java程序 - 一个数据库旅游机构。所以我使用的是Swing GridLayout
,然后想要将其转换为带有Intellij IDEA的.form
文件。当我做的一切都停止了工作,现在我
无法从文件加载数据或将新数据添加到文件。这是代码:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
public class Ld31514462 extends javax.swing.JFrame {
private JTabbedPane jTabbedPane1;
private JPanel jPanel1;
private JPanel jPanel2;
private JScrollPane jScrollPane1;
private JTable jTable1;
private javax.swing.JPanel JPanel;
private JButton dzestIerakstuButton;
private JButton loadDataButton;
private JTextField textField1;
private JTextField textField2;
private JTextField textField3;
private JTextField textField4;
private JTextField textField5;
private JButton pievienotButton;
private JTextField textField6;
private JButton atrastButton;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Ld31514462 inst = new Ld31514462();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public Ld31514462() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().add(getJTabbedPane1(), BorderLayout.CENTER);
pack();
setSize(600, 400);
} catch (Exception e) {
e.printStackTrace();
}
}
private JTabbedPane getJTabbedPane1() {
if(jTabbedPane1 == null) {
jTabbedPane1 = new JTabbedPane();
jTabbedPane1.addTab("Dati", null, getJPanel1(), null);
jTabbedPane1.addTab("Pievienot Jaunu Celazimi", null, getJPanel2(), null);
}
return jTabbedPane1;
}
private JPanel getJPanel1() {
if(jPanel1 == null) {
//jPanel1 = new JPanel();
BorderLayout jPanel1Layout = new BorderLayout();
jPanel1.setLayout(jPanel1Layout);
jPanel1.add(getJScrollPane1(), BorderLayout.CENTER);
// jPanel1.add(loadDataButton, BorderLayout.NORTH);
//jPanel1.add(dzestIerakstuButton, BorderLayout.SOUTH);
dzestIerakstuButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
int nbrrow=jTable1.getRowCount();
if(nbrrow>=1){
int[] rows = jTable1.getSelectedRows();
if(rows.length>=1){
if(jTable1.getModel().isCellEditable(jTable1.getSelectedRow(),jTable1.getSelectedColumn())
&&jTable1.isEditing()==true)
{
jTable1.getCellEditor().stopCellEditing();
for(int i=0;i<rows.length;i++){
model.removeRow(rows[i]-i);
}
}else{
for(int i=0;i<rows.length;i++){
model.removeRow(rows[i]-i);
}
}
/*for(int i=0;i<jTable1.getRowCount();i++){
model.setValueAt(i, i, 0);
}*/
jTable1.revalidate();
jTable1.repaint();
}
}
}
});
loadDataButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.setRowCount(0);
BufferedReader br = null;
ArrayList rosterList = new ArrayList();
try {
br = new BufferedReader(new FileReader("/home/nauris/Desktop/mydata.txt"));
String line = br.readLine();
while (line != null ) {
rosterList.add(line);
//String [] rowfields = line.split(" ");
//for (String s : rowfields) {
//System.out.println(s);
//DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(line.split(", "));
//}
line = br.readLine();
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
// jPanel1.add(textField6);
// jPanel1.add(atrastButton, BorderLayout.AFTER_LAST_LINE);
}
return jPanel1;
}
private JPanel getJPanel2() {
if(jPanel2 == null) {
/* jPanel2 = new JPanel();
jPanel2.setLayout( new GridLayout( 6, 2 ) );
JLabel label1 = new JLabel( "Pilseta:" );
label1.setBounds( 10, 15, 150, 20 );
jPanel2.add( label1 );
JTextField field1 = new JTextField();
field1.setBounds( 10, 35, 150, 20 );
jPanel2.add( field1 );
JLabel label2 = new JLabel( "Dienu skaits:" );
label2.setBounds( 10, 60, 150, 20 );
jPanel2.add( label2 );
JTextField field2 = new JTextField();
field2.setBounds( 10, 80, 150, 20 );
jPanel2.add( field2 );
JLabel label3 = new JLabel( "Transportlidzekla veids:" );
label3.setBounds( 10, 105, 180, 20 );
jPanel2.add( label3 );
JTextField field3 = new JTextField();
field3.setBounds( 10, 125, 150, 20 );
jPanel2.add( field3 );
JLabel label4 = new JLabel( "Cena:" );
label4.setBounds( 10, 150, 150, 20 );
jPanel2.add( label4 );
JTextField field4 = new JTextField();
field4.setBounds( 10, 170, 150, 20 );
jPanel2.add( field4 );
JLabel label5 = new JLabel( "Datums:" );
label5.setBounds( 10, 195, 150, 20 );
jPanel2.add( label5 );
JTextField field5 = new JTextField();
field5.setBounds( 10, 215, 150, 20 );
jPanel2.add( field5 );
JLabel label6 = new JLabel( "" );
label6.setBounds( 10, 195, 150, 20 );
jPanel2.add( label6 );*/
//jPanel2.add( new JButton( "Pievienot" ), BorderLayout.SOUTH );
//JButton btn = new JButton("Pievienot");
//jPanel2.add(btn);
pievienotButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//String s;
//s = field1.getText() + " " + field2.getText() + " " + field3.getText() + " " + field4.getText() + " " + field5.getText();
//label6.setText(s);
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
String[] newrow = { textField1.getText(), textField2.getText(), textField3.getText(), textField4.getText(), textField5.getText() };
model.addRow(newrow);
try {
saveTable();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
}
return jPanel2;
}
public void saveTable()throws Exception
{
JFileChooser filesave = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXT File", ".txt", "text");
filesave.setFileFilter(filter);
try {
// File file = filesave.getSelectedFile();
FileWriter fout = new FileWriter("/home/nauris/Desktop/mydata.txt");
PrintWriter os = new PrintWriter(fout);
for (int row = 0; row < jTable1.getRowCount(); row++) {
for (int col = 0; col < jTable1.getColumnCount(); col++) {
//os.print(jTable1.getColumnName(col));
//os.print(": ");
os.print(jTable1.getValueAt(row, col) + ", ");
}
os.println();
}
os.close();
//System.out.println("Done!");
} catch (IOException e1) {
e1.printStackTrace();
}
}
private JScrollPane getJScrollPane1() {
if(jScrollPane1 == null) {
// jScrollPane1 = new JScrollPane();
jScrollPane1.setViewportView(getJTable1());
}
return jScrollPane1;
}
private JTable getJTable1() {
if(jTable1 == null) {
String[] columnNames = {"Pilseta", "Dienas","Transportlidzekla veids","Cena","Datums"};
DefaultTableModel jTable1Model = new DefaultTableModel();
/*TableModel jTable1Model =
new DefaultTableModel(
//new String[][] { { "One", "Two" }, { "Three", "Four" } },
new String[] { "Pilseta", "Dienas","Transportlidzekla veids","Cena","Datums" });*/
jTable1Model.addColumn(columnNames[0]);
jTable1Model.addColumn(columnNames[1]);
jTable1Model.addColumn(columnNames[2]);
jTable1Model.addColumn(columnNames[3]);
jTable1Model.addColumn(columnNames[4]);
//jTable1Model.addColumn(columnNames[5]);
//jTable1 = new JTable();
jTable1.setModel(jTable1Model);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(jTable1Model);
jTable1.setRowSorter(sorter);
jTable1.getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
// access the values of the model and save them to the file here
try {
saveTable();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
}
return jTable1;
}
}