basileus_82
11-02-2012, 18:11
ciao a tutti
mi sto accingendo a studiare il packege Swing e Awt
ho fatto un piccolo programmino che scrive su un file excel (non riporto la classe chiamata per scrivere sul file excel)
il problema è questo:
1)quando avvio l'elaborazione premendo sul tasto AVVIA, dovrebbe cominciare anche il progressbar (settato su indeterminato), invece sia avvia alla fine quando l'elaborazione è finita
2) è possibile fare l'elaborazione in backgroud? Mi speigo, durante l'elaborazione il tasto AVVIA rimane cliccato, e non si può fare nulla nel frattempo
grazie per le risposte
ecco il codice
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.JFileChooser;
import java.io.*;
public class FileEsteroToExcel extends JPanel {
WriteExcel w ;
JButton button;
JFileChooser fc ;
File selFile;
int n;
JTextField textField ;
JButton openFileChooser;
JProgressBar progressBar;
public FileEsteroToExcel() {
super(new BorderLayout());
createPanel();
}
private void createPanel() {
JPanel panelButton = new JPanel();
JPanel panelRun = new JPanel();
JPanel panelpbar = new JPanel();
panelButton.setBackground(Color.BLUE);
panelButton.setSize(600,200);
panelRun.setBackground(Color.RED);
panelRun.setSize(600,200);
panelpbar.setBackground(Color.GREEN);
panelpbar.setSize(600,200);
openFileChooser = new JButton("Apri File");
openFileChooser.setToolTipText("Apri file dell'estero");
textField = new JTextField(20);
panelButton.add(openFileChooser);
JButton button = new JButton("Avvia");
button.setBounds(50, 60, 80, 30);
button.setToolTipText("Avvia");
progressBar = new JProgressBar();
openFileChooser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JFileChooser fileChooser = new JFileChooser();
int n = fileChooser.showOpenDialog(FileEsteroToExcel.this);
if (n == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
textField.setText(f.getAbsolutePath());
}
}
});
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (textField.getText().equals("")) {
System.out.println("Campo vuoto");
} else {
progressBar.setIndeterminate(true);
w = new WriteExcel("K:/portatile_hp/estero_excel/FileEsteroToExcel/TERNA_OBJECTS-D168_vs_D166.TXT") ;
w.scriviExcel();
}
}
});
panelButton.add(openFileChooser);
panelButton.add(textField);
panelRun.add(button);
panelpbar.add(progressBar);
add(panelButton, BorderLayout.NORTH);
add(panelRun, BorderLayout.CENTER);
add(panelpbar, BorderLayout.SOUTH);
}
public static void main(String[] args) {
JFrame frame = new JFrame("FileEsteroToExcel");
FileEsteroToExcel ex = new FileEsteroToExcel();
frame.getContentPane().add(ex);
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
}
mi sto accingendo a studiare il packege Swing e Awt
ho fatto un piccolo programmino che scrive su un file excel (non riporto la classe chiamata per scrivere sul file excel)
il problema è questo:
1)quando avvio l'elaborazione premendo sul tasto AVVIA, dovrebbe cominciare anche il progressbar (settato su indeterminato), invece sia avvia alla fine quando l'elaborazione è finita
2) è possibile fare l'elaborazione in backgroud? Mi speigo, durante l'elaborazione il tasto AVVIA rimane cliccato, e non si può fare nulla nel frattempo
grazie per le risposte
ecco il codice
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.JFileChooser;
import java.io.*;
public class FileEsteroToExcel extends JPanel {
WriteExcel w ;
JButton button;
JFileChooser fc ;
File selFile;
int n;
JTextField textField ;
JButton openFileChooser;
JProgressBar progressBar;
public FileEsteroToExcel() {
super(new BorderLayout());
createPanel();
}
private void createPanel() {
JPanel panelButton = new JPanel();
JPanel panelRun = new JPanel();
JPanel panelpbar = new JPanel();
panelButton.setBackground(Color.BLUE);
panelButton.setSize(600,200);
panelRun.setBackground(Color.RED);
panelRun.setSize(600,200);
panelpbar.setBackground(Color.GREEN);
panelpbar.setSize(600,200);
openFileChooser = new JButton("Apri File");
openFileChooser.setToolTipText("Apri file dell'estero");
textField = new JTextField(20);
panelButton.add(openFileChooser);
JButton button = new JButton("Avvia");
button.setBounds(50, 60, 80, 30);
button.setToolTipText("Avvia");
progressBar = new JProgressBar();
openFileChooser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JFileChooser fileChooser = new JFileChooser();
int n = fileChooser.showOpenDialog(FileEsteroToExcel.this);
if (n == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
textField.setText(f.getAbsolutePath());
}
}
});
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (textField.getText().equals("")) {
System.out.println("Campo vuoto");
} else {
progressBar.setIndeterminate(true);
w = new WriteExcel("K:/portatile_hp/estero_excel/FileEsteroToExcel/TERNA_OBJECTS-D168_vs_D166.TXT") ;
w.scriviExcel();
}
}
});
panelButton.add(openFileChooser);
panelButton.add(textField);
panelRun.add(button);
panelpbar.add(progressBar);
add(panelButton, BorderLayout.NORTH);
add(panelRun, BorderLayout.CENTER);
add(panelpbar, BorderLayout.SOUTH);
}
public static void main(String[] args) {
JFrame frame = new JFrame("FileEsteroToExcel");
FileEsteroToExcel ex = new FileEsteroToExcel();
frame.getContentPane().add(ex);
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
}