Программисты JAVA общаются здесь
Anonymous
Индикатор выполнения Java Swing с динамическим текстом
Сообщение
Anonymous » 02 окт 2024, 10:40
Я создаю приложение Java Swing, поэтому теперь мне нужно отобразить JProgressBar и динамически изменить текст.
Итак, вот мой код:
Код: Выделить всё
public void creaInventarioDaFile(){
try{
JFileChooser fc = new JFileChooser();
fc.setFileFilter(new TextFileFilter());
//@SuppressWarnings("unused")
int n = fc.showOpenDialog(PanelInventario.this);
File f = fc.getSelectedFile();
@SuppressWarnings("unused")
DataInputStream inStream = new DataInputStream(new FileInputStream(f));
BufferedReader br = new BufferedReader(new FileReader(f.getAbsoluteFile()));
//a questo punto devo parserizzare il file
Mapmappa = new LinkedHashMap();
//JDialog downloadingDialog = new JDialog((JFrame)null ,"Analizzo file...");
final JDialog dialog = new JDialog((JFrame)null, "In progress", true);
try {
@SuppressWarnings("unused")
StringBuilder sb = new StringBuilder();
String line = br.readLine();
PrintWriter writer = new PrintWriter("articoliInesistenti.txt", "UTF-8");
JProgressBar progressBar = new JProgressBar(0, 100);
progressBar.setIndeterminate(true);
dialog.getContentPane().add(BorderLayout.CENTER, progressBar);
dialog.getContentPane().add(BorderLayout.NORTH, new JLabel("Elaborating strings..."));
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.setSize(300, 75);
dialog.setVisible(true); //
//dialog.setLocationRelativeTo((JFrame)null);
while (line != null || line != "") {
if(line.isEmpty())
break;
String[] articol=null;
Integer colonnaCodice = null;
Integer colonnaQuantita = null;
if(line.contains(" && ")){
articol= line.split(" && ");
if(articol.length!=2){
line = br.readLine();
continue;
}
colonnaCodice = 0;
colonnaQuantita = 1;
}else if(line.contains(",")){
articol= line.split(",");
if(articol.length!=3){
line = br.readLine();
continue;
}
colonnaCodice = 1;
colonnaQuantita = 2;
}
InventarioArticoli inventario = new InventarioArticoli();
inventario.setCodiceBarre(articol[colonnaCodice]);
inventario.setQuantita(Integer.parseInt(articol[colonnaQuantita]));
progressBar.setString("Lettura codice: "+inventario.getCodiceBarre()+" " + " qtà: " + inventario.getQuantita());
//recupero l articolo dal daabase
Articoli articoloInserito = db.eseguiQueryArticolo(inventario.getCodiceBarre(), true,"Prezzo 1");
if(articoloInserito == null){
writer.println(inventario.getCodiceBarre() + " quantità " + inventario.getQuantita());
VisualMessageOrdini.getMessaggioArticoloInesistente(inventario.getCodiceBarre());
line = br.readLine();
continue;
}
inventario.setNomeArticolo(articoloInserito.getNomeArticolo());
inventario.setArticolo(articoloInserito);
mappa.put(inventario.getCodiceBarre(), inventario);
line = br.readLine();
}
} finally {
dialog.dispose();
br.close();
caricaMappaIntoTable(mappa);
}
//}
}catch(Exception e){
log.logStackTrace(e);
}
}
С помощью этого кода я могу отображать JProgressBar без текста. Как я могу это исправить?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... cally-text
1727854852
Anonymous
Я создаю приложение Java Swing, поэтому теперь мне нужно отобразить JProgressBar и динамически изменить текст. Итак, вот мой код: [code]public void creaInventarioDaFile(){ try{ JFileChooser fc = new JFileChooser(); fc.setFileFilter(new TextFileFilter()); //@SuppressWarnings("unused") int n = fc.showOpenDialog(PanelInventario.this); File f = fc.getSelectedFile(); @SuppressWarnings("unused") DataInputStream inStream = new DataInputStream(new FileInputStream(f)); BufferedReader br = new BufferedReader(new FileReader(f.getAbsoluteFile())); //a questo punto devo parserizzare il file Mapmappa = new LinkedHashMap(); //JDialog downloadingDialog = new JDialog((JFrame)null ,"Analizzo file..."); final JDialog dialog = new JDialog((JFrame)null, "In progress", true); try { @SuppressWarnings("unused") StringBuilder sb = new StringBuilder(); String line = br.readLine(); PrintWriter writer = new PrintWriter("articoliInesistenti.txt", "UTF-8"); JProgressBar progressBar = new JProgressBar(0, 100); progressBar.setIndeterminate(true); dialog.getContentPane().add(BorderLayout.CENTER, progressBar); dialog.getContentPane().add(BorderLayout.NORTH, new JLabel("Elaborating strings...")); dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); dialog.setSize(300, 75); dialog.setVisible(true); // //dialog.setLocationRelativeTo((JFrame)null); while (line != null || line != "") { if(line.isEmpty()) break; String[] articol=null; Integer colonnaCodice = null; Integer colonnaQuantita = null; if(line.contains(" && ")){ articol= line.split(" && "); if(articol.length!=2){ line = br.readLine(); continue; } colonnaCodice = 0; colonnaQuantita = 1; }else if(line.contains(",")){ articol= line.split(","); if(articol.length!=3){ line = br.readLine(); continue; } colonnaCodice = 1; colonnaQuantita = 2; } InventarioArticoli inventario = new InventarioArticoli(); inventario.setCodiceBarre(articol[colonnaCodice]); inventario.setQuantita(Integer.parseInt(articol[colonnaQuantita])); progressBar.setString("Lettura codice: "+inventario.getCodiceBarre()+" " + " qtà: " + inventario.getQuantita()); //recupero l articolo dal daabase Articoli articoloInserito = db.eseguiQueryArticolo(inventario.getCodiceBarre(), true,"Prezzo 1"); if(articoloInserito == null){ writer.println(inventario.getCodiceBarre() + " quantità " + inventario.getQuantita()); VisualMessageOrdini.getMessaggioArticoloInesistente(inventario.getCodiceBarre()); line = br.readLine(); continue; } inventario.setNomeArticolo(articoloInserito.getNomeArticolo()); inventario.setArticolo(articoloInserito); mappa.put(inventario.getCodiceBarre(), inventario); line = br.readLine(); } } finally { dialog.dispose(); br.close(); caricaMappaIntoTable(mappa); } //} }catch(Exception e){ log.logStackTrace(e); } } [/code] С помощью этого кода я могу отображать JProgressBar без текста. Как я могу это исправить? Подробнее здесь: [url]https://stackoverflow.com/questions/79045785/java-swing-progressbar-with-dynamically-text[/url]