

Java - jProgressBar change color
Dobrý den,
Potřebuji změnit barvu jProgressBaru, ale nevím jak?
Prosím o radu.
Předem děkuji.
Dobrý den,
Potřebuji změnit barvu jProgressBaru, ale nevím jak?
Prosím o radu.
Předem děkuji.
Zpět do poradny Odpovědět na původní otázku Nahoru
http://stackoverflow.com/questions/10773978/how-to -change-jprogressbar-color
Díky, ale to jsem našel, jenže jsem nepochopil, co přesně UIManager.put dělá.
Mění nastavení. V tomhle případě nastavení barev. To přece chceš, ne?
Ano, chci měnit barvu
UIManager.put("ProgressBar.background", Color.ORANGE);
UIManager.put("ProgressBar.foreground", Color.BLUE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.GREEN);
Jenže chci vědět, co přesně to dělá, protože nechápu, proč jsou všechny barvy jiné.
background = pozadí
foreground = popředí
selectionBackground = pozadí výběru
selectionForeground = popředí výběru
Dobře, dobře, zas takový amatér nejsem, vím co je background a foreground.
Ale důvod, proč jsem se ptal, jak to pracuje a vlastně důvod, proč jsem tuhle diskuzi založil, je ten, že mně to i tak nefunguje.
Co znamená "nefunguje"? Pokud chceš konkrétní rady, musíš taky pokládat konkrétní otázky.
Žádná změna. Pořád to má defaultní barvu.
Bylo by daleko lepší, kdyby jsi to vyzkoušel sám u sebe.
Asi víš, jak vytvořit JFrame. Tak ho vytvoř, vlož jeden progressBar a nastav u něj barvu. Pokud by to fungovalo, tak mně pošli ten soubor.
Byl bych ti vděčný.
Díky.
Už to funguje.
import java.awt.Color;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
public final class Test extends javax.swing.JFrame {
private static void Test() {
JFrame frame = new JFrame();
frame.setSize(Toolkit.getDefaultToolkit().getScree nSize());
frame.dispose();
frame.setUndecorated(true);
frame.setVisible(true);
frame.setLayout(null);
JProgressBar bar = new JProgressBar(1,10, 100);
frame.getContentPane().add(bar);
bar.setBounds(10, 100, 10, 100);
bar.setValue(50);
bar.setForeground(Color.RED);
bar.setBackground(Color.WHITE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Test();
}
});
}
}