webForumDet fria alternativet

färg på knapp

5 svar · 270 visningar · startad av Wiberg

WibergMedlem sedan juni 20003 169 inlägg
#1

Hur ändrar jag färg på en knapp?

 Button penna = new Button("penna")
WibergMedlem sedan juni 20003 169 inlägg
#2

en sak till...
hur kollar man om en checkbox är förkryssad?

 Checkbox fyll = new Checkbox("fyll", null, true);
MotorheadMedlem sedan maj 20037 inlägg
#3

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();
}

}

MotorheadMedlem sedan maj 20037 inlägg
#4

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();
}

}

WibergMedlem sedan juni 20003 169 inlägg
#5

Tack!

aasahMedlem sedan mars 20034 471 inlägg
#6

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...

134 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)