Galera, preciso de ajuda com uma lógica.
Seguinte.
Meu programa funciona da seguinte forma, eu faço a leitura de um arquivo que contem dados na seguinte formatação.
2013-09-25 00:00:00.0|263
2013-09-26 00:00:00.0|5598
2013-09-27 00:00:00.0|5
2013-09-30 00:00:00.0|768
Eu separo por pipe e retiro o "00:00:00.0" deixando somente a data, ficando dessa maneira no programa.
[img]http://imageshack.com/scaled/large/23/l0o1.png[/img]
A primeira coluna é a data que tirei o HH:MM:SS e a quantidade de contratos com essa data, a terceira coluna é onde vou colocar a nova data para alterar no novo arquivo que vou gerar, no código, ele pega da minha outra classe DAO e faz uma consulta no SQL e cria um arquivo com os dados na seguinte formatação.
[telefone removido]|HC|2|66|66|18016/1403952060000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|72|72|18016/1324512090000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|67|67|18016/1363520340000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|79|79|18016/1377307530000|10|2|0|2013-09-26|1|||
[telefone removido]|HC|2|69|69|18016/1325390720000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|76|76|18016/1344820770000|24|2|0|2013-09-26|1|||
[telefone removido]|HC|2|78|78|18016/1376344640000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|63|63|18016/1330851000000|10|2|0|2013-09-26|1|||
[telefone removido]|HC|2|73|73|18016/1327029910000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|73|73|18016/1323733420000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|80|80|18016/1402332630000|24|2|0|2013-09-26|1|||
[telefone removido]|HC|2|69|69|18016/1360443390000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|77|77|18016/1371917020000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|81|81|18016/1323334290000|6|2|0|2013-09-26|1|||
quando eu coloco a data para alterar, ele deveria substituir todas as datas iguais da coluna 0 para a data nova com a data da coluna 2, segue o código.
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.JLabel;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Component;
import java.awt.Label;
import java.awt.Button;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Window.Type;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Pattern;
import javax.swing.border.BevelBorder;
import java.awt.Font;
import javax.swing.JButton;
public class arqParcelado extends JFrame {
private JComboBox dia_ini = new JComboBox();
private JComboBox mes_ini = new JComboBox();
private JComboBox ano_ini = new JComboBox();
private JComboBox dia_fim = new JComboBox();
private JComboBox mes_fim = new JComboBox();
private JComboBox ano_fim = new JComboBox();
private JPanel contentPane;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
arqParcelado frame = new arqParcelado();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void preencheTabela(String arqTrat) throws SQLException,
ClassNotFoundException, IOException {
FileReader ler = new FileReader(arqTrat);
BufferedReader leitor = new BufferedReader(ler);
String linha, retira00;
LineNumberReader qtdLinha = new LineNumberReader(
new FileReader(arqTrat));
qtdLinha.skip(arqTrat.length());
int qtdLinhaArq = qtdLinha.getLineNumber();
int i = 0;
while ((linha = leitor.readLine()) != null) {
String[] linhas = linha.split(Pattern.quote("|"));
retira00 = linhas[0].replaceAll(" 00:00:00.0", "");
// for(i = 0;i <= 5;i++){
table.setValueAt(retira00, i, 0);
table.setValueAt(linhas[1], i, 1);
i++;
// }
}
leitor.close();
/*
* table.setValueAt("", 1, 2); table.setValueAt(result, linha, coluna);
* table.setValueAt(result, linha, coluna); table.setValueAt(result,
* linha, coluna); table.setValueAt(result, linha, coluna);
* table.setValueAt(result, linha, coluna); table.setValueAt(result,
* linha, coluna); table.setValueAt(result, linha, coluna);
* table.setValueAt(result, linha, coluna); table.setValueAt(result,
* linha, coluna); table.setValueAt(result, linha, coluna);
* table.setValueAt(result, linha, coluna); table.setValueAt(result,
* linha, coluna);
*/
}
/**
* Create the frame.
*/
public arqParcelado() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setType(Type.POPUP);
setTitle("Rob\u00F4 Parcelado");
setBounds(100, 100, 450, 413);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("Dt. Recebimento Contrato");
lblNewLabel.setBounds(10, 9, 134, 14);
contentPane.add(lblNewLabel);
Label label = new Label("\u00E0");
label.setBounds(218, 52, 14, 22);
contentPane.add(label);
final String[] linha = new String[] { null, null, null };
Button btQtdPrevDev = new Button("Qtd. por Prev. Devolu\u00E7\u00E3o");
btQtdPrevDev.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String diaIni = (String) dia_ini.getSelectedItem();
String mesIni = (String) mes_ini.getSelectedItem();
String anoIni = (String) ano_ini.getSelectedItem();
String diaFim = (String) dia_fim.getSelectedItem();
String mesFim = (String) mes_fim.getSelectedItem();
String anoFim = (String) ano_fim.getSelectedItem();
DAO dao = new DAO();
try {
// dao.exportParcelado(diaIni, mesIni, anoIni, diaFim,
// mesFim, anoFim);
String arquivo = "Quantidade_Robo_Parcelado_" + diaIni
+ mesIni + anoIni + ".txt";
// dao.qtdParcelado(diaIni, mesIni, anoIni, diaFim, mesFim,
// anoFim);
preencheTabela(arquivo);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btQtdPrevDev.setBounds(10, 87, 196, 22);
contentPane.add(btQtdPrevDev);
JScrollPane spTabela = new JScrollPane();
spTabela.setBounds(10, 119, 422, 256);
contentPane.add(spTabela);
DefaultTableCellRenderer letras = new DefaultTableCellRenderer() {
public void setValue(Object value) {
setBackground(new Color(238, 238, 238));
setForeground(Color.BLACK);
setHorizontalAlignment(JLabel.CENTER);
// outras alterações entram aqui...
super.setValue(value);
}
};
// TableColumn tc = table.getColumn("");
// tc.setCellRenderer(letras);
table = new JTable();
table.setCellSelectionEnabled(true);
table.setColumnSelectionAllowed(true);
table.setFont(new Font("Calibri", Font.PLAIN, 13));
table.setBackground(Color.WHITE);
table.setBorder(null);
table.setModel(new DefaultTableModel(new Object[][] {
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null },
{ null, null, null }, { null, null, null }, }, new String[] {
"Previs\u00E3o de Devolu\u00E7\u00E3o", "Quantidade",
"Altera Data" }) {
boolean[] columnEditables = new boolean[] { false, false, true };
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
spTabela.setViewportView(table);
dia_ini.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
"03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
"23", "24", "25", "26", "27", "28", "29", "30", "31" }));
dia_ini.setBounds(10, 52, 47, 22);
contentPane.add(dia_ini);
mes_ini.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
"03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
mes_ini.setBounds(67, 52, 47, 22);
contentPane.add(mes_ini);
ano_ini.setModel(new DefaultComboBoxModel(new String[] { "2013",
"2014", "2015", "2016", "2017", "2018", "2019", "2020" }));
ano_ini.setBounds(124, 52, 82, 22);
contentPane.add(ano_ini);
dia_fim.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
"03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
"23", "24", "25", "26", "27", "28", "29", "30", "31" }));
dia_fim.setBounds(238, 52, 47, 22);
contentPane.add(dia_fim);
mes_fim.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
"03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
mes_fim.setBounds(295, 52, 47, 22);
contentPane.add(mes_fim);
ano_fim.setModel(new DefaultComboBoxModel(new String[] { "2013",
"2014", "2015", "2016", "2017", "2018", "2019", "2020" }));
ano_fim.setBounds(352, 52, 82, 22);
contentPane.add(ano_fim);
JButton btnGerarArquivoImportao = new JButton(
"Gerar Arquivo Importa\u00E7\u00E3o");
btnGerarArquivoImportao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String diaIni = (String) dia_ini.getSelectedItem();
String mesIni = (String) mes_ini.getSelectedItem();
String anoIni = (String) ano_ini.getSelectedItem();
String diaFim = (String) dia_fim.getSelectedItem();
String mesFim = (String) mes_fim.getSelectedItem();
String anoFim = (String) ano_fim.getSelectedItem();
DAO dao = new DAO();
try {
// dao.exportParcelado(diaIni, mesIni, anoIni, diaFim,
// mesFim,anoFim);
String arquivo = "Robo_Parcelado_" + diaIni + mesIni
+ anoIni + ".txt";
String nvArquivo = "IMPORTAR-Quantidade_Robo_Parcelado_"
+ diaIni + mesIni + anoIni + ".txt";
String qtdArq = "IMPORTAR-Quantidade_Robo_Parcelado_"
+ diaIni + mesIni + anoIni + ".txt";
FileReader ler = new FileReader(arquivo);
BufferedReader leitor = new BufferedReader(ler);
String linha;
String retira00;
// String retira0;
PrintWriter out = new PrintWriter(nvArquivo);
// int line = 0;
// qdtLn =- 1;
LineNumberReader linLeit = new LineNumberReader(
new FileReader(qtdArq));
linLeit.skip(qtdArq.length());
int qtdLinha = linLeit.getLineNumber();
while ((linha = leitor.readLine()) != null) {
for (int line = 0; line <= qtdLinha + 3; line++) {
String dtAnterior = (String) table.getValueAt(line,
0);
String dtNova = (String) table.getValueAt(line, 2);
retira00 = linha.replaceAll(dtAnterior, dtNova);
out.println(retira00);
System.out.println(retira00);
// System.out.println(retira00);
}
}
out.close();
leitor.close();
// }
// File arq = new File(arquivo);
// arq.delete();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnGerarArquivoImportao.setBounds(238, 87, 194, 22);
contentPane.add(btnGerarArquivoImportao);
}
}
Por favor, me ajudem, meu emprego está em jogo :(