alguem sabe como ler documento .txt em uma jtable sendo que a primeira linha
do documento é a headline da tabela(nome das colunas)
usando o package java.util.regex
alguma dica?
danke!
alguem sabe como ler documento .txt em uma jtable sendo que a primeira linha
do documento é a headline da tabela(nome das colunas)
usando o package java.util.regex
alguma dica?
danke!
Qual é o formato do arquivo? CSV?
e um csv mas salvei em .txt
Vou te dar o caminho das pedras.
hmm…fiz com vector.
meu codigo
package main;
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Component;
import java.awt.Event;
import java.awt.BorderLayout;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.KeyStroke;
import java.awt.Point;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JFrame;
import javax.swing.JDialog;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Homework6 {
private JFrame jFrame = null;
private JPanel jContentPane = null;
private JMenuBar jJMenuBar = null;
private JMenu fileMenu = null;
private JMenu editMenu = null;
private JMenu helpMenu = null;
private JMenuItem exitMenuItem = null;
private JMenuItem aboutMenuItem = null;
private JMenuItem cutMenuItem = null;
private JMenuItem copyMenuItem = null;
private JMenuItem pasteMenuItem = null;
private JMenuItem saveMenuItem = null;
private JDialog aboutDialog = null;
private JPanel aboutContentPane = null;
private JLabel aboutVersionLabel = null;
private JScrollPane jScrollPane = null;
private Vector<String> header = new Vector<String>(); // @jve:decl-index=0:
private Vector<String> data = new Vector<String>(); // @jve:decl-index=0:
/**
* This method initializes jFrame
*
* @return javax.swing.JFrame
*/
private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setJMenuBar(getJJMenuBar());
jFrame.setSize(300, 200);
jFrame.setContentPane(getJContentPane());
jFrame.setTitle("Application");
}
return jFrame;
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JMenuItem jMenuItem = null;
private JTable jTable = null;
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJScrollPane(), BorderLayout.CENTER);
}
return jContentPane;
}
/**
* This method initializes jJMenuBar
*
* @return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getFileMenu());
jJMenuBar.add(getEditMenu());
jJMenuBar.add(getHelpMenu());
}
return jJMenuBar;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getFileMenu() {
if (fileMenu == null) {
fileMenu = new JMenu();
fileMenu.setText("File");
fileMenu.add(getJMenuItem());
fileMenu.add(getSaveMenuItem());
fileMenu.add(getExitMenuItem());
}
return fileMenu;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getEditMenu() {
if (editMenu == null) {
editMenu = new JMenu();
editMenu.setText("Edit");
editMenu.add(getCutMenuItem());
editMenu.add(getCopyMenuItem());
editMenu.add(getPasteMenuItem());
}
return editMenu;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getHelpMenu() {
if (helpMenu == null) {
helpMenu = new JMenu();
helpMenu.setText("Help");
helpMenu.add(getAboutMenuItem());
}
return helpMenu;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getExitMenuItem() {
if (exitMenuItem == null) {
exitMenuItem = new JMenuItem();
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
return exitMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getAboutMenuItem() {
if (aboutMenuItem == null) {
aboutMenuItem = new JMenuItem();
aboutMenuItem.setText("About");
aboutMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog aboutDialog = getAboutDialog();
aboutDialog.pack();
Point loc = getJFrame().getLocation();
loc.translate(20, 20);
aboutDialog.setLocation(loc);
aboutDialog.setVisible(true);
}
});
}
return aboutMenuItem;
}
/**
* This method initializes aboutDialog
*
* @return javax.swing.JDialog
*/
private JDialog getAboutDialog() {
if (aboutDialog == null) {
aboutDialog = new JDialog(getJFrame(), true);
aboutDialog.setTitle("About");
aboutDialog.setContentPane(getAboutContentPane());
}
return aboutDialog;
}
/**
* This method initializes aboutContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getAboutContentPane() {
if (aboutContentPane == null) {
aboutContentPane = new JPanel();
aboutContentPane.setLayout(new BorderLayout());
aboutContentPane.add(getAboutVersionLabel(), BorderLayout.CENTER);
}
return aboutContentPane;
}
/**
* This method initializes aboutVersionLabel
*
* @return javax.swing.JLabel
*/
private JLabel getAboutVersionLabel() {
if (aboutVersionLabel == null) {
aboutVersionLabel = new JLabel();
aboutVersionLabel.setText("Version 1.0");
aboutVersionLabel.setHorizontalAlignment(SwingConstants.CENTER);
}
return aboutVersionLabel;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getCutMenuItem() {
if (cutMenuItem == null) {
cutMenuItem = new JMenuItem();
cutMenuItem.setText("Cut");
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
Event.CTRL_MASK, true));
}
return cutMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getCopyMenuItem() {
if (copyMenuItem == null) {
copyMenuItem = new JMenuItem();
copyMenuItem.setText("Copy");
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
Event.CTRL_MASK, true));
}
return copyMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getPasteMenuItem() {
if (pasteMenuItem == null) {
pasteMenuItem = new JMenuItem();
pasteMenuItem.setText("Paste");
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
Event.CTRL_MASK, true));
}
return pasteMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getSaveMenuItem() {
if (saveMenuItem == null) {
saveMenuItem = new JMenuItem();
saveMenuItem.setText("Save");
saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
Event.CTRL_MASK, true));
}
return saveMenuItem;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getJMenuItem() {
if (jMenuItem == null) {
jMenuItem = new JMenuItem();
jMenuItem.setText("Open");
jMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(getParent());
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
}
File text = chooser.getSelectedFile();
try {
BufferedReader in = new BufferedReader(
new FileReader(text));
// PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(“Z:\view.txt”)));
String line;
Pattern p = Pattern.compile(""(.*?)"");//muster die es gesucht wird
Matcher m;
line = in.readLine();
m = p.matcher(line);//Sucht den muster
while(m.find()){
header.add(m.group(1));
}
while ((line = in.readLine()) != null) {
m = p.matcher(line);
while(m.find()){
data.add(m.group(1));
}
}
in.close();
//JLabel jEditorPane;
//JLabel jEditorPane1 = null;
//jEditorPane1.setText(wholeText);
// out.close();
}
catch (IOException ex){
}
}
private Component getParent() {
// TODO Auto-generated method stub
return null;
}});
}
return jMenuItem;
}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
//String frase = "\"AWSTA / Johannes Hofrichter\",\"HS16\"";
// Pattern p = Pattern.compile("\"(.*?)\"");
// Matcher m = p.matcher(frase);
// while (m.find()) {
// System.out.println(m.group(1));
// }
jTable = new JTable();
}
return jTable;
}
/**
* Launches this application
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Homework6 application = new Homework6();
application.getJFrame().setVisible(true);
}
});
}
}
eu nao sei mais como continuar…é frustrante…
nao. vou usar vector.
vector e melhor pra trabalhar
De onde você tirou que Vector é melhor para trabalhar?
O Vector é uma classe antiga, que não deve ser usado desde o java 1.2.
O List é uma classe nova, tem uma interface mais enxuta e, para trabalhar, é praticamente igual ao vector. Além disso, não é sincronizado e por isso exige menos recursos e tem performance melhor. Você pode olhar esse tópico, que mostra como trabalhar com lists: http://www.guj.com.br/posts/list/74068.java#389435
Hoje em dia, não há razão nenhuma para usar Vector.
Mas… quanto ao seu problema. Elaborei o seguinte exemplo, espero que te ajude.
xo ve
[quote=Mychely]xo ve
[/quote]
Blz, qualquer coisa é só perguntar…
Mit freundlichen Grüßen, Vini.
hmmm…
ainda sim quero o meu codigo certo. com o vector.
vc pode dizer algo contra o vector mas o vector e bom de trabalhar.
mit freudlichen grüßen, Mychely
Você já usou a classe List? E a ArrayList?
Ambos (Vector a List) implementam a mesma interface. Isso significa que é igual trabalhar nos dois.
Você faz:
[code]Vector<String> v = new Vector<String>();
v.add(“Vinícius”);
v.add(“Godoy”);
for (String str : v) {
System.out.println(str);
}
System.out.println("Tamanho: " + v.size());
[/code]
Da mesma forma que faz:
List<String> l = new ArrayList<String>();
l.add("Vinícius");
l.add("Godoy");
for (String str : l) {
System.out.println(str);
}
System.out.println("Tamanho: " + l.size());
Ah sim… e você pode converter facilmente um String[] num List<String>. Basta fazer:
String[] qualquerCoisa = {"A", "B", "C", "D"};
List<String> umaLista = Collections.asList(qualquerCoisa);
seguinte baby…a primeira linha do meu texto vai ser a headline da tabela, sacou? nao da pra simplesmente fazer um string qualquer coisa e escrever o nome das colunas. o nome das colunas tem que vir da primeira linha do texto…sacou baby?
sag mal wie gut du bist!
Como está no exemplo que anexei?
com arraylist
By the way…
o exemplo do “qualquerCoisa” só estava demonstrando como converter de String[] para List<String>, algo que pode ser útil no seu programa, já que o split retorna um String[]…
Depois, aquele exemplo que eu postei ali em cima, anexado, já usa a primeira linha do arquivo como cabeçalho, como você queria.
Além disso, se quer usar Vector no lugar de ArrayList, basta trocar a declaração. Lá no attachment que eu fiz, ao invés de
List<String> lines = new ArrayList<String>();
Faça:
List<String> lines = new Vector<String>();
Ou então:
Vector<String> lines = new Vector<String>();
Como eu disse, como todos implementam a mesma interface, e a maneira de usa-los é IDÊNTICA, esse é o único trabalho que você terá de fazer…
Por último, não me chame de “baby”. Não sei se você percebeu, mas estou tentando te ajudar. Não preciso de ironias… especialmente quando eu já tinha postado algo que resolvia o seu problema.
nao baby. nao foi baby no sentido de ironia…foi baby no num sentido carinhoso…nao precisa ficar bravu. :*
vc nao entendeu…ou eu nao te entendi. vc disse que no exemplo que voce mandou vc ja usa a primeira linha da tabela como cabecalho e o que eu quero é usar a primeira linha do .txt como cabecalho da tabela.