PDA

Visualizza la versione completa : [JAVA]Status Bar


frog831
09-03-2004, 18:48
Ciao a tutti vorrei mettere una statusBar in un applicazione java...ho controllato e ne AWT ne SWING possiedono questo componente (sempre che nn sono diventato cieco) ho cercato su google e ho trovato alcune doc di classi ma nn riesco a risalire al codice sorgente della classe....sapete darmi un link o la classe????vi ringrazio anticipatamente....

Xadoom
09-03-2004, 18:52
Ma non c' la JProgressBar o qualcosa simile? :ciauz:

LeleFT
09-03-2004, 18:58
Effettivamente questo componente non esiste in nessuno dei package da te citati... forse perch semplicissimo costruirne una?

Una status bar non nientemeno che un pannello contenente degli oggetti (come altri pannelli, Labels, immagini...)

Non dovrebbe essere difficile crearne una. ;) Molti la implementano per mezzo di una JLabel (Label AWT), altri tramite un JPanel (Panel AWT) e, secondo il mio parere, la seconda soluzione pi funzionale.


Ciao. :ciauz:

LeleFT
09-03-2004, 19:00
Originariamente inviato da Xadoom
Ma non c' la JProgressBar o qualcosa simile? :ciauz:
Ha chiesto la StatusBar... quella barra che st su tutte le finestre di Windows in basso dove vengono visualizzate informazioni varie (come la descrizione del menu selezionato, il numero di file di una cartella, la dimensione del file...), non una ProgressBar... ;)


Ciao. :ciauz:

frog831
09-03-2004, 20:39
hai perfettamente ragione se pero' la implemento io come JPanel nn riesco a fargli il bordo TIPICO della Status Bar......nn so molto capace con i bordi :D
sai dirmi come fare?

LeleFT
09-03-2004, 21:51
Basta ridefinire il metodo paintComponent() oppure il metodo paint() ed andare a disegnarglieli... oppure dovrebbe essere possibile impostare il bordo tramite il metodo setBorder(), che, per, non ho mai usato.

Prova una cosa di questo genere (per farlo incassato, come nelle StatusBar di Windows):


public void paint(Graphics g) {
g.setColor(SystemColor.controlHighlight);
g.drawLine(0, 0, getWidth()-1, 0);
g.drawLine(0, getHeight()-1, getWidth()-1, getHeight()-1);
g.drawLine(getWidth()-1, getHeight()-1, getWidth()-1, 3);

g.setColor(SystemColor.controlDkShadow);
g.drawLine(0, 3, getWidth()-2, 3);
g.drawLine(0, 3, 0, getHeight()-2);
}

Non l'ho provata perch l'ho scritta al volo, ma dovrebbe andare.
Magari imposta nel costruttore dell'oggetto il colore dello sfondo della StatusBar, usando l'istruzione setBackground(SystemColor.control);

Ciao. :ciauz:

Lancill
09-03-2004, 23:08
Un po' di tempo fa ho fatto una classe StatusBar per un abbozzo di browser in Java.
Se ti interessa eccola:



import javax.swing.*;
import java.awt.*;

class StatusBar extends JPanel{

private String msg;
private int larg, alt;
private JLabel l;
private ImageIcon ico;
private Font f = new Font("Verdana", Font.PLAIN, 12);

public StatusBar(String msg, int larg, int alt){
super();
setBorder(BorderFactory.createBevelBorder(1));
this.setLayout(new FlowLayout(FlowLayout.LEFT));
this.msg = msg;
this.larg = larg;
this.alt = alt;
ico = new ImageIcon("LancillIcon.png");
l = new JLabel(" "+msg,ico,JLabel.CENTER);
l.setFont(f);
add(l);
}

public String getMsg(){
return msg;
}

public int getLarg(){
return larg;
}

public int getAlt(){
return alt;
}

public void setLabel(String newMsg){
msg = newMsg;
l.setText(" "+msg);
}
}


ovviamente adattala al tuo scopo :)

frog831
10-03-2004, 00:14
thx 1000 e' proprio quello che mi serviva....

Xadoom
10-03-2004, 13:50
Ok, scusate mi ero confuso.... :ciauz:

Loading