Banalny programik, ustawianie tła z RGB itp.

0

Witam serdecznie

Mam pewien problem, z którym już od kilku godz. nie mogę sobie poradzić. Dla większości pewnie wyda się on banalny, jednak ja dopiero zaczynam zabawę z Javą, więc postanowiłem zwrócić się z prośbą o pomoc do Was.

Otóż mam programik w którym ustalam sobie wartość kolory w HEXach. Program pokazuje mi tą wartość w RGB. I teraz chciałbym, aby ta wartość RGB została wstawiona jako wartość tła. Innymi słowy... wybieram sobie kolor w HEXach, pokazuje mi go w RGB i zmienia mi tło na wybrany kolor. Może to być zmiana automatyczna, a może być po wciśnięciu przycisku. To już jest mi obojętne ;)

Oto kod programu:

package javaapplication2;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class colors3 extends Applet implements ItemListener {
   String tabwsp[][]=
    {
        {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"},
        {"16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31",},
        {"32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47",},
        {"48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63",},
        {"64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79",},
        {"80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95",},
        {"96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111",},
        {"112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127",},
        {"128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143",},
        {"144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159",},
        {"160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175",},
        {"176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191",},
        {"192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207",},
        {"208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223",},
        {"224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239",},
        {"240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255",}
    };


        Choice c1 = new Choice();
        Choice c2 = new Choice();
        Choice c3 = new Choice();
        Choice c4 = new Choice();
        Choice c5 = new Choice();
        Choice c6 = new Choice();

        Panel p1 = new Panel();
        Panel p2 = new Panel();

        Label et1 = new Label("Definicja");
        Label et2 = new Label("Kolor w HEXach");
        Label et3 = new Label("Kolor w RGB");

        int n1,n2,n3,n4,n5,n6;

        TextField tfhex = new TextField(16);
        TextField tfrgb = new TextField(16);




    @Override
   public void init() {


        c1.addItem("0");
        c1.addItem("1");
        c1.addItem("2");
        c1.addItem("3");
        c1.addItem("4");
        c1.addItem("5");
        c1.addItem("6");
        c1.addItem("7");
        c1.addItem("8");
        c1.addItem("9");
        c1.addItem("A");
        c1.addItem("B");
        c1.addItem("C");
        c1.addItem("D");
        c1.addItem("E");
        c1.addItem("F");
        add(et1);
        add(c1);
        c1.addItemListener (this);

        c2.addItem("0");
        c2.addItem("1");
        c2.addItem("2");
        c2.addItem("3");
        c2.addItem("4");
        c2.addItem("5");
        c2.addItem("6");
        c2.addItem("7");
        c2.addItem("8");
        c2.addItem("9");
        c2.addItem("A");
        c2.addItem("B");
        c2.addItem("C");
        c2.addItem("D");
        c2.addItem("E");
        c2.addItem("F");
        add(c2);
        c2.addItemListener (this);

        c3.addItem("0");
        c3.addItem("1");
        c3.addItem("2");
        c3.addItem("3");
        c3.addItem("4");
        c3.addItem("5");
        c3.addItem("6");
        c3.addItem("7");
        c3.addItem("8");
        c3.addItem("9");
        c3.addItem("A");
        c3.addItem("B");
        c3.addItem("C");
        c3.addItem("D");
        c3.addItem("E");
        c3.addItem("F");
        add(c3);
        c3.addItemListener (this);

        c4.addItem("0");
        c4.addItem("1");
        c4.addItem("2");
        c4.addItem("3");
        c4.addItem("4");
        c4.addItem("5");
        c4.addItem("6");
        c4.addItem("7");
        c4.addItem("8");
        c4.addItem("9");
        c4.addItem("A");
        c4.addItem("B");
        c4.addItem("C");
        c4.addItem("D");
        c4.addItem("E");
        c4.addItem("F");
        add(c4);
        c4.addItemListener (this);

        c5.addItem("0");
        c5.addItem("1");
        c5.addItem("2");
        c5.addItem("3");
        c5.addItem("4");
        c5.addItem("5");
        c5.addItem("6");
        c5.addItem("7");
        c5.addItem("8");
        c5.addItem("9");
        c5.addItem("A");
        c5.addItem("B");
        c5.addItem("C");
        c5.addItem("D");
        c5.addItem("E");
        c5.addItem("F");
        add(c5);
        c5.addItemListener (this);

        c6.addItem("0");
        c6.addItem("1");
        c6.addItem("2");
        c6.addItem("3");
        c6.addItem("4");
        c6.addItem("5");
        c6.addItem("6");
        c6.addItem("7");
        c6.addItem("8");
        c6.addItem("9");
        c6.addItem("A");
        c6.addItem("B");
        c6.addItem("C");
        c6.addItem("D");
        c6.addItem("E");
        c6.addItem("F");
        add(c6);
        c6.addItemListener (this);


        add(et2);
        add(tfhex);

        add(et3);
        add(tfrgb);

        n1=0; n2=0;
        n3=0; n4=0;
        n5=0; n6=0;

        tfhex.setText("Wartosc koloru HEX");
        tfrgb.setText("Wartosc koloru RGB");


        }


    public void itemStateChanged (ItemEvent e) {

   
        tfhex.setText("#"+c1.getSelectedItem()+c2.getSelectedItem()+c3.getSelectedItem()+c4.getSelectedItem()+c5.getSelectedItem()+c6.getSelectedItem());
        n1=c1.getSelectedIndex();
        n2=c2.getSelectedIndex();
        n3=c3.getSelectedIndex();
        n4=c4.getSelectedIndex();
        n5=c5.getSelectedIndex();
        n6=c6.getSelectedIndex();
        tfrgb.setText(tabwsp[n1][n2] + ", " + tabwsp[n3][n4] + ", " + tabwsp[n5][n6]);


    }

}

No i tutaj mamy wartość w RGB - "tabwsp[n1][n2] + ", " + tabwsp[n3][n4] + ", " + tabwsp[n5][n6]", która pojawia nam się w polu tekstowym. Chciałbym żeby właśnie ona wyznaczała mi tło :)

0

w itemStateChanged daj:
setBackground(new Color(r, g, b));
gdzie r, b, g to wartości kolorów i int'ach lub float'ach

0

Można troszkę jaśniej? ;)
Próbowałem do r przypisać wartość tabwsp[n1][n2] itd., no ale cały czas wywala błąd Incompatible types (z tego co rozumiem to dlatego, że jedno jest float a drugie String).

0

Jaśniej:

public void itemStateChanged (ItemEvent e) {
//coś tam twojego
int r = Integer.valueOf(tabwsp[n1][n2]);
int g = Integer.valueOf(tabwsp[n3][n4]);
int b = Integer.valueOf(tabwsp[n5][n6]);
Color color = new Color(r, g, b);
setBackground(color);
}

Średnio przemawia do mnie koncepcja trzymania tablicy String'ów, szufladę stringów to jeszcze rozumiem ale i tak nie pochwalam :)

0

Oo... super. Działa wszystko w jak najlepszym porządku ;) Trochę hamowało mnie to. Teraz mogę lecieć dalej, hehe ;) Dzięki wielkie za pomoc.

abe napisał(a)

Średnio przemawia do mnie koncepcja trzymania tablicy String'ów, szufladę stringów to jeszcze rozumiem ale i tak nie pochwalam :)

Szczerze to nie bardzo to rozumiem. Tak jak pisałem... dopiero zaczynam przygodę z Javą i nie orientuję się czym się różni tablica od szuflady ;)

Co do samej tablicy to miało jej wstępnie nie być, bo przekonwertować kod z HEXów na RGB można w balany sposób matematyczny, ale nie bardzo wiedziałem jak go zapisać, bo błędy były. Posiedzę jeszcze nad tym zaraz :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1