färg på knapp
5 svar · 270 visningar · startad av Wiberg
en sak till...
hur kollar man om en checkbox är förkryssad?
Checkbox fyll = new Checkbox("fyll", null, true);
Hej.
Fråga 1.
Du får ändra bakgrund och förgrund på din knapp.
Button b = new Button("Penna");
b.setForeground(new Color(r, g, b));
b.setBackground(new Color(r, g, b));
Parametrarna du skickar med är en färg där r, g, b är nivåerna av röd, grön och blå som färgen blandas med. Dessa tal kan antingen var heltal 0-255 eller flyttal 0.0-1.0.
Färg ex. (255, 0, 0) = röd
Klassen java.awt.Color har även (beroende på version) vissa färdiga färger som du kan använda dig av, tex Color.GREEN och då ser din knapp ut enligt följande:
b.setForeground(Color.GREEN);
Fråga 2.
Lägg till en lyssnare på din checkbox...
import java.awt.*;
import java.awt.event.*;
public class Test extends Frame implements ItemListener{
private Checkbox cb;
public Test(){
super("Testar");
setSize(200, 200);
cb = new Checkbox("Ett test");
cb.addItemListener(this);
add(cb);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
show();
}
public void itemStateChanged(ItemEvent e){
if(e.getStateChange() == ItemEvent.SELECTED){
System.out.println("Kryssad....");
}
else if(e.getStateChange() == ItemEvent.DESELECTED){
System.out.println("Inte kryssad....");
}
}
public static void main(String\[\] args){
new Test();
}
}
Hej.
Glömde säga det att du kanske inte behöver en lyssnare, det beror ju på vad du vill göra...
Här är ett program som kollar checkboxens tillstånd och skriver ut det i prompten när du trycker på knappen "Gör något".
import java.awt.*;
import java.awt.event.*;
public class Test extends Frame implements ActionListener{
private Checkbox cb;
public Test(){
super("Testar");
setSize(200, 50);
cb = new Checkbox("Ett test");
Button b = new Button("Gör något");
b.setForeground(new Color(0, 128, 0));
b.setBackground(new Color(0, 0, 0));
b.addActionListener(this);
setLayout(new BorderLayout());
add("West", cb);
add("East" ,b);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
show();
}
public void gor_en_sak(){
if(cb.getState())
System.out.println("Kryssad...");
else
System.out.println("Inte kryssad");
}
public void actionPerformed(ActionEvent e){
gor_en_sak();
}
public static void main(String\[\] args){
new Test();
}
}
Tack!
Ifall du är nöjd med standardfärger kan du använda klassen Color.
Button b = new Button();
b.setBackground(Color.yellow);
b.setForeground((Color.green).brighter());
Det finns några fördefinierade färger och några metoder bland annat brighter() och darker(), vad de gör kan du säkert lista ut...