Barvy v Javě
V dalším příkladu se pokusíme změnit barvu tlačítka na vlastní hodnotu. Nepoužijeme předdefnovaný odstín, vytvoříme vlastní objekt třídy Color.b.setBackground(new (140,140,140));
b.setForeground(new Color(150,250,180));
Hodnoty barevných složek 4asto potřebujeme zjistit hodnoty jednotlivých barevných složek. K tomu slouží tři metody: getRed(), getGreen(), getBlue().
Výsledkem jsou hodnoty typu int.
Fonty v Javě
Java může běžet na různých operačních systémech. Na každém z nich se mohou vyskytovat jiné typy fontů. Java proto používá systém tzv. symbolických fontů, které jsou nezávislé na platformě. Existuje pět základních skupin fontů (tzv. rodin), od kterých lze odvodit 4 řezy (plain, bold, italic, bolditalic).Jejich přehled a srovnání s fonty OS Windows je uveden v následující tabulce.
OS Windows | Java |
TimesNewRoman | Serif |
Arial | SansSerif |
CourierNew | Monospaced |
Arial | Dialog |
CourierNew | DialogInput |
Pro práci s fonty Java používá třídu java.awt.Font. Údaje o fontu se nacházejí v instanci třídy Font. Její konstruktor vypadá takto.
Font f =new Font(Serif, Font.bold,10);
Získání informací o fontu. Pro získání informací o fontu použijeme metodu getFont() vracející hodnotu třídy font. Na ní lze aplikovat řadu dalších metod:
getFamily(), isPlain(), isBold(), isItalic().
Základní vlastnosti komponent
Zjištění velikosti a polohy komponenty. Pro zjištění velikosti komponenty slouží metody getWidth() a getHeight(). Výsledkem jsou hodnoty typu int. Existuje i metoda getSize() vracející obě hodnoty současně. Polohu komponenty vzhledem k levému hornímu rohu okna můžeme určit prostřednictvím metod getX() a getY(). Do této hodnoty se nepočítá výška titulkového pruhu formuláře. Velikost komponenty můžeme změnit prostřednictvím metody setSize(int width, int height), polohu komponenty prostřednictvím setLocation().Existují i jejich varianty s get, getSize() a getLocation().
Nastavení max/min velikosti komponenty Každé z komponent je možno nastavit minimální, maximální, či preferovanou velikost. Slouží k tomu metody setMinimumSize(int width, int height), setMaximumSize(int width, int height), setPrefferedSize(int width, int height). Preferovaná velikost komponenty je výchozí velikost komponenty, defaultně je nastavena jako minimální velikost komponenty. Pro zjištění výše nastavených údajů slouží metody getMinimumSize(), getMaximumSize(), getPrefferedSize().
Zpřístupnění/znepřístupnění komponenty. Komponenta se může vyskytovat ve dvou základních stavech: komponenta je aktivní, jsou nad ní generovány události, označujeme ji jako přístupnou. V opačném případě je komponenta nepřístupná a tudíž aktivní, je znázorněna šedou barvou. Tato vlastnost komponenty je používána, pokud chceme uživateli zakázat/povolit nějakou akci. Není vhodné komponenty odebírat, nepřispívá to k přehlednosti programu (uživatel bude zmaten, kam zmizely jeho oblíbené nástroje). Pro zpřístupnění/znepřístupnění komponenty je používána metoda setEnabled(boolean status). Metoda má jako parametr hodnotu typu boolean. Zjištění stavu, zda je komponenta přístupná či ne, použijeme příkaz getEnabled().
Podívejme se na jednoduchý program, který ilustruje přístupnost komponenty na příkladu dvou tlačítek. Po stisknutí jednoho z nich se druhé tlačítko stane nepřístupným. Opakovaným stisknutím tlačítka se druhé tlačítko opět stává aktivním. Výsledný kód může vypadat např. takto.
public class Okno4 extends JFrame{
private JButton b1, b2;
public Okno4(int sirka, int vyska) {
this.setSize(sirka, vyska);
this.setTitle("Okno");
this.setLayout(new FlowLayout());
b1=new JButton();
b2=new JButton();
b1.setText("Zapnuto");
b2.setText("Zapnuto");
this.getContentPane().add(b1);
this.getContentPane().add(b2);
this.setVisible(true);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tl1Stisknuto(e);
}
});
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e ) {
tl2Stisknuto(e);
}
});
}
public void tl1Stisknuto(ActionEvent e)
{
b2.setEnabled(!b2.isEnabled());
if (b2.isEnabled()) b2.setText("Zapnuto");
else b2.setText("Vypnuto");
}
public void tl2Stisknuto(ActionEvent e)
{
b1.setEnabled(!b1.isEnabled());
if (b1.isEnabled()) b1.setText("Zapnuto");
else b1.setText("Vypnuto");
}
}
Skrytí/zobrazení komponenty. Komponentu je možno zobrazit či skrýt.
Slouží k tomu metoda setVisible(boolean status) s parametrem typu boolean. Stav komponenty lze zjistit metodou isVisible().
Autor: Filip Koval