getContentPane()

ongelmia

Esimerkeissä on käytetty
getContentPane()

eikä NetBeans näköjän tykkää tuosta. Miksi, miten korjaan/mitä puuttuu ja mitä tilalle?

13

814

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ???

      Jaa miten ei tykkää? Ja missä esimerkissä? Eli HÄH???

      • tällaisessa lauseessa

        getContentPane().add(laatikko, "North");


      • gdgfgf
        tällaisessa lauseessa kirjoitti:

        getContentPane().add(laatikko, "North");

        jotain virheilmoitusta antaa vai mitä? olisko vielä laajempaa esimerkkiä saatavilla...

        tai toimisko näin:
        this.getContentPane().add(laatikko, "North");

        tai näin:
        add(laatikko, "North");


      • hyviä esimerkkejä?
        gdgfgf kirjoitti:

        jotain virheilmoitusta antaa vai mitä? olisko vielä laajempaa esimerkkiä saatavilla...

        tai toimisko näin:
        this.getContentPane().add(laatikko, "North");

        tai näin:
        add(laatikko, "North");

        Minne/miten tuohon laitetaan pääohjelma?

        Mikä kirja hyvä graafiseen java ohjelmointiin tai nettisivutkin kelpaa alkuun?

        ---------------
        package Laskin;

        import java.awt.*;
        import java.awt.event.*;
        import javax.swing.*;

        public class Laskin extends Dialog implements ActionListener
        {

        Button painike=new Button("OK");
        Button summa=new Button("Summa");
        Button kerro=new Button("Kerro");

        TextField luku1, luku2, tulos;

        public Laskin(Frame parent)
        {
        super(parent, "Laskin",true);

        this.setSize(300,100);
        this.setResizable(false);

        Box laatikko=Box.createHorizontalBox();
        laatikko.add(Box.createHorizontalStrut(50));
        laatikko.add(Box.createVerticalStrut(10));

        laatikko.add(new Label("Luku 1"));
        laatikko.add(luku1=new TextField());
        laatikko.add(new Label("Luku 2"));
        laatikko.add(luku2=new TextField());

        laatikko.add(Box.createVerticalStrut(20));
        //getContentPane().add(laatikko, "North");
        add(laatikko, "North");
        Box laatikko2=Box.createHorizontalBox();
        laatikko2.add(Box.createVerticalStrut(10));
        laatikko2.add(new Label("Tulos"));
        laatikko2.add(tulos=new TextField());
        laatikko2.add(summa);
        laatikko2.add(kerro);
        laatikko2.add(painike);
        add(laatikko2, "North");
        summa.addActionListener(this);
        painike.addActionListener(this);
        kerro.addActionListener(this);
        }
        public void actionPerformed(ActionEvent event)
        {
        if(event.getSource()==summa)
        {
        int lukuyksi=Integer.parseInt(luku1.getText());
        int lukukaksi=Integer.parseInt(luku2.getText());
        int vastaus=lukuyksi lukukaksi;
        tulos.setText(" " vastaus);
        }
        if(event.getSource()==kerro)
        {
        int lukuyksi=Integer.parseInt(luku1.getText());
        int lukukaksi=Integer.parseInt(luku2.getText());
        int vastaus=lukuyksi*lukukaksi;
        tulos.setText(" " vastaus);
        }
        if(event.getSource()==painike)
        {
        setVisible(false);
        }
        }
        }


      • korjausta korjauksen perään
        hyviä esimerkkejä? kirjoitti:

        Minne/miten tuohon laitetaan pääohjelma?

        Mikä kirja hyvä graafiseen java ohjelmointiin tai nettisivutkin kelpaa alkuun?

        ---------------
        package Laskin;

        import java.awt.*;
        import java.awt.event.*;
        import javax.swing.*;

        public class Laskin extends Dialog implements ActionListener
        {

        Button painike=new Button("OK");
        Button summa=new Button("Summa");
        Button kerro=new Button("Kerro");

        TextField luku1, luku2, tulos;

        public Laskin(Frame parent)
        {
        super(parent, "Laskin",true);

        this.setSize(300,100);
        this.setResizable(false);

        Box laatikko=Box.createHorizontalBox();
        laatikko.add(Box.createHorizontalStrut(50));
        laatikko.add(Box.createVerticalStrut(10));

        laatikko.add(new Label("Luku 1"));
        laatikko.add(luku1=new TextField());
        laatikko.add(new Label("Luku 2"));
        laatikko.add(luku2=new TextField());

        laatikko.add(Box.createVerticalStrut(20));
        //getContentPane().add(laatikko, "North");
        add(laatikko, "North");
        Box laatikko2=Box.createHorizontalBox();
        laatikko2.add(Box.createVerticalStrut(10));
        laatikko2.add(new Label("Tulos"));
        laatikko2.add(tulos=new TextField());
        laatikko2.add(summa);
        laatikko2.add(kerro);
        laatikko2.add(painike);
        add(laatikko2, "North");
        summa.addActionListener(this);
        painike.addActionListener(this);
        kerro.addActionListener(this);
        }
        public void actionPerformed(ActionEvent event)
        {
        if(event.getSource()==summa)
        {
        int lukuyksi=Integer.parseInt(luku1.getText());
        int lukukaksi=Integer.parseInt(luku2.getText());
        int vastaus=lukuyksi lukukaksi;
        tulos.setText(" " vastaus);
        }
        if(event.getSource()==kerro)
        {
        int lukuyksi=Integer.parseInt(luku1.getText());
        int lukukaksi=Integer.parseInt(luku2.getText());
        int vastaus=lukuyksi*lukukaksi;
        tulos.setText(" " vastaus);
        }
        if(event.getSource()==painike)
        {
        setVisible(false);
        }
        }
        }

        korjaus eli tuo ensimmäinen luokka ei ole public.

        Voiko sen laittaa publiciksi ja sen sisään main?

        vai pitääkö mainille oma erillinen?

        (hitto että tästä on pihalla, yksikään koettelemani kurssille annettu esimerkki ei ole toiminut muuttelematta sitä...)

        package Laskin;

        import java.awt.*;
        import java.awt.event.*;
        import javax.swing.*;

        class Laskin extends Dialog implements ActionListener
        {

        Button painike=new Button("OK");
        Button summa=new Button("Summa");
        Button kerro=new Button("Kerro");

        TextField luku1, luku2, tulos;

        public Laskin(Frame parent)
        {
        super(parent, "Laskin",true);

        this.setSize(300,100);
        this.setResizable(false);

        Box laatikko=Box.createHorizontalBox();
        laatikko.add(Box.createHorizontalStrut(50));
        laatikko.add(Box.createVerticalStrut(10));

        laatikko.add(new Label("Luku 1"));
        laatikko.add(luku1=new TextField());
        laatikko.add(new Label("Luku 2"));
        laatikko.add(luku2=new TextField());

        laatikko.add(Box.createVerticalStrut(20));
        //getContentPane().add(laatikko, "North");
        add(laatikko, "North");
        Box laatikko2=Box.createHorizontalBox();
        laatikko2.add(Box.createVerticalStrut(10));
        laatikko2.add(new Label("Tulos"));
        laatikko2.add(tulos=new TextField());
        laatikko2.add(summa);
        laatikko2.add(kerro);
        laatikko2.add(painike);
        add(laatikko2, "North");
        summa.addActionListener(this);
        painike.addActionListener(this);
        kerro.addActionListener(this);
        }
        public void actionPerformed(ActionEvent event)
        {
        if(event.getSource()==summa)
        {
        int lukuyksi=Integer.parseInt(luku1.getText());
        int lukukaksi=Integer.parseInt(luku2.getText());
        int vastaus=lukuyksi lukukaksi;
        tulos.setText(" " vastaus);
        }
        if(event.getSource()==kerro)
        {
        int lukuyksi=Integer.parseInt(luku1.getText());
        int lukukaksi=Integer.parseInt(luku2.getText());
        int vastaus=lukuyksi*lukukaksi;
        tulos.setText(" " vastaus);
        }
        if(event.getSource()==painike)
        {
        setVisible(false);
        }
        }
        }


    • sdfasdfasfasdf

      Kodissasi on sijoitetaan kaksi kertaa pohjois alueelle jotain ('add(x, "North")') joten se esimmäinen komponentti ei näy koska toinen "ylikirjoittaa" sen. Luo uusia paneleita jos haluat sijoittaa aina pohjois alueelle, esima:

      ---- ALKAA ---

         Panel panel1 = new Panel(new BorderLayout());
         Panel panel2 = new Panel(new BorderLayout());
                  
         Box laatikko=Box.createHorizontalBox();
         laatikko.add(Box.createHorizontalStrut(50));
         laatikko.add(Box.createVerticalStrut(10));

         laatikko.add(new Label("Luku 1"));
         laatikko.add(luku1=new TextField());
         laatikko.add(new Label("Luku 2"));
         laatikko.add(luku2=new TextField());

         laatikko.add(Box.createVerticalStrut(20));
         panel1.add(laatikko, "North");
            
         Box laatikko2=Box.createHorizontalBox();
         laatikko2.add(Box.createVerticalStrut(10));
         laatikko2.add(new Label("Tulos"));
         laatikko2.add(tulos=new TextField());
         laatikko2.add(summa);
         laatikko2.add(kerro);
         laatikko2.add(painike);
            
         panel2.add(laatikko2, "North");
         panel1.add(panel2, "Center");
         add(panel1, "North");

      --- LOPPUU ---

      • mutta miten tuo yleensä saa...

        siitä en tiedä, mutta miten tuo yleensä saadaan toimimaan kun Netbeansillä yritän ajaa tuota niin sanoo ettei ole main-metodia.

        Miten tuo ajetaan?


      • koodiin
        mutta miten tuo yleensä saa... kirjoitti:

        siitä en tiedä, mutta miten tuo yleensä saadaan toimimaan kun Netbeansillä yritän ajaa tuota niin sanoo ettei ole main-metodia.

        Miten tuo ajetaan?

        Main-metodin :) eli public static void main(String[] args){ //ja täällä luot laskimesi}

        yksinkertainen esimerkki:

        public class Test{
        public Test(){System.out.println("Testista terve");}
        }

        Luokka kääntyy mutta jos sitä yrittää ajaa java-komennolla saa ilmoituksen puuttuvasta main-metodista.
        Korjaus:
        public class Test{
        public Test(){System.out.println("Testista Terve");}
        public static void main(String[] args){
        new Test();
        }
        }

        Nyt luokka kääntyy ja ajettaessa java-komennolla tulostuu Testista terve teksti. Harjoitukseksi jätetään se, miten tuota Test luokkaa käytetään toisesta Luokasta:)


      • ei toimi ihan vielä
        koodiin kirjoitti:

        Main-metodin :) eli public static void main(String[] args){ //ja täällä luot laskimesi}

        yksinkertainen esimerkki:

        public class Test{
        public Test(){System.out.println("Testista terve");}
        }

        Luokka kääntyy mutta jos sitä yrittää ajaa java-komennolla saa ilmoituksen puuttuvasta main-metodista.
        Korjaus:
        public class Test{
        public Test(){System.out.println("Testista Terve");}
        public static void main(String[] args){
        new Test();
        }
        }

        Nyt luokka kääntyy ja ajettaessa java-komennolla tulostuu Testista terve teksti. Harjoitukseksi jätetään se, miten tuota Test luokkaa käytetään toisesta Luokasta:)

        Katsoin mallia muista esimerkeistä ja lisäsin loppuun tällaisen:

        ------

        public class LaskinSovellus
        {
        public static void main(String args[])
        {
        Laskin laskin = new Laskin("Laskin");
        laskin.setVisible(true);
        }
        }

        ------

        Ei tosin vieläkään toimi.

        Herjaa: Cannot find symbol.
        Constructor Laskin (java.lang.String)
        class Laskin.Laskin

        MikäMikä?


      • taasen
        ei toimi ihan vielä kirjoitti:

        Katsoin mallia muista esimerkeistä ja lisäsin loppuun tällaisen:

        ------

        public class LaskinSovellus
        {
        public static void main(String args[])
        {
        Laskin laskin = new Laskin("Laskin");
        laskin.setVisible(true);
        }
        }

        ------

        Ei tosin vieläkään toimi.

        Herjaa: Cannot find symbol.
        Constructor Laskin (java.lang.String)
        class Laskin.Laskin

        MikäMikä?

        Herja sanoo, että cannot find symbol, joka tarkoittaa että jotain on hukassa. Katsoppa siis tarkemmin Laskin luokan konstruktoria ja mitä se ottaa parametrikseen.
        PS. Seuraavan ihmettelyn aiheeseesi, eli miksei ei-staattisesta kontekstista voi viitat staattiseen kontekstiin, löytyy vastaus palstalta:)


      • sdfasdfasfasdf
        mutta miten tuo yleensä saa... kirjoitti:

        siitä en tiedä, mutta miten tuo yleensä saadaan toimimaan kun Netbeansillä yritän ajaa tuota niin sanoo ettei ole main-metodia.

        Miten tuo ajetaan?

        Itse testasin sitä koodiasi lisäämällä ihan main metodin suoraan Laskin luokkaan ja ottamalla package jutun pois.

        --- ALKAA ---
           
           public static void main(String[] args) {
              new Laskin(null).setVisible(true);
           }

        --- LOPPUU ---


        Kirjoitit tuohon yhteen viestiin miten yritit tehdä main:ia, niin ei siinä muuta vikaa ole kuin se mitä kääntäjä ilmoittaa, (eli se ei löydä Laskin luokasta muodostinta jonka parametriksi tulisi merkkijono). Huomaathaan että koodissasi Laskin luokan muodostin haluaa Frame:n parametrina (jolla kerrotaan dialogin isäntä kehys), eikä merkkijonoa. Muuta siis koodistasi "... = new Laskin("Laskin");" vaikka muotoon "... = new Laskin(null);".


      • jommin kummin
        sdfasdfasfasdf kirjoitti:

        Itse testasin sitä koodiasi lisäämällä ihan main metodin suoraan Laskin luokkaan ja ottamalla package jutun pois.

        --- ALKAA ---
           
           public static void main(String[] args) {
              new Laskin(null).setVisible(true);
           }

        --- LOPPUU ---


        Kirjoitit tuohon yhteen viestiin miten yritit tehdä main:ia, niin ei siinä muuta vikaa ole kuin se mitä kääntäjä ilmoittaa, (eli se ei löydä Laskin luokasta muodostinta jonka parametriksi tulisi merkkijono). Huomaathaan että koodissasi Laskin luokan muodostin haluaa Frame:n parametrina (jolla kerrotaan dialogin isäntä kehys), eikä merkkijonoa. Muuta siis koodistasi "... = new Laskin("Laskin");" vaikka muotoon "... = new Laskin(null);".

        eli

        joko erillinen
        --------------------

        public class LaskinSovellus
        {
        public static void main(String args[])
        {
        Laskin laskin = new Laskin(null);
        laskin.setVisible(true);
        }
        }
        -------------------------

        tai sitten näin

        -------------------------
        package Laskin;

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

        class Laskin extends Dialog implements ActionListener
        {

        Button painike=new Button("OK");
        Button summa=new Button("Summa");
        Button kerro=new Button("Kerro");

        TextField luku1, luku2, tulos;

        public static void main(String[] args) {
        new Laskin(null).setVisible(true);
        }
        .
        . /*koodi jatkuu*/
        .
        ----------------------------------------------

        niin toimii. (Voi olla myös tuo package NetBeansissa mukana. Toimii tosin ilmankin.)

        Joku jo aikaisemmin mainitsikin että koodissa on jotain vikaa muuallakin... Ilmeisesti tuossa on vikaa vielä noissa lukujen syöttökentissä.

        ps. Kiitoksia erinomaisesta avusta kaikille.


      • tuossa on yritetty
        jommin kummin kirjoitti:

        eli

        joko erillinen
        --------------------

        public class LaskinSovellus
        {
        public static void main(String args[])
        {
        Laskin laskin = new Laskin(null);
        laskin.setVisible(true);
        }
        }
        -------------------------

        tai sitten näin

        -------------------------
        package Laskin;

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

        class Laskin extends Dialog implements ActionListener
        {

        Button painike=new Button("OK");
        Button summa=new Button("Summa");
        Button kerro=new Button("Kerro");

        TextField luku1, luku2, tulos;

        public static void main(String[] args) {
        new Laskin(null).setVisible(true);
        }
        .
        . /*koodi jatkuu*/
        .
        ----------------------------------------------

        niin toimii. (Voi olla myös tuo package NetBeansissa mukana. Toimii tosin ilmankin.)

        Joku jo aikaisemmin mainitsikin että koodissa on jotain vikaa muuallakin... Ilmeisesti tuossa on vikaa vielä noissa lukujen syöttökentissä.

        ps. Kiitoksia erinomaisesta avusta kaikille.

        eli siis ymmärtääkseni tuossa on yritetty niin että olisi kaksi laatikko joihin syötetään kokonaisluvut (lukuyksi ja lukukaksi) ja sitten painetaan joko summa tai kerroin painiketta ja tulos tulee kolmanteen laatikkoon.

        Vai?


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Porvarimediat paniikissa demareiden huiman kannatuksen vuoksi

      Piti sitten keksiä "nimettömiin lähteisiin" perustuen taas joku satu. Ovat kyllä noloja, ja unohtivat sen, että vaalit
      Maailman menoa
      154
      8329
    2. KATASTROFI - Tytti Tuppurainen itse yksi pahimmista kiusaajista!!!

      STT:n lähteiden mukaan SDP:n eduskuntaryhmän puheenjohtaja Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti
      Maailman menoa
      432
      7412
    3. Mikä siinä on ettei persuille leikkaukset käy?

      On esitetty leikkauksia mm. haitallisiin maataloustukiin, kuin myös muihin yritystukiin. Säästöjä saataisiin lisäksi lei
      Maailman menoa
      71
      3831
    4. Lääppijä Lindtman jäi kiinni itse teosta

      Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-2000011780852
      Maailman menoa
      150
      3522
    5. Juuri nyt! Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti

      Ai että mä nautin, Tytti erot vireille! "Käytös on kohdistunut avustajia ja toisia kansanedustajia kohtaan, uutisoi STT
      Maailman menoa
      111
      2998
    6. Huomaatteko Demari Tytti ei esitä pahoitteluitaan

      Samanlainen ilmeisesti kuin Marin eli Uhriutuu no he ovat Demareita ja muiden yläpuolella siis omasta mielestään
      Maailman menoa
      51
      2557
    7. Onko kaivattusi

      liian vetovoimainen seksuaalisesti?
      Ikävä
      126
      2016
    8. Puolen vuoden koeaika

      Voisi toimia meillä. Ensin pitäis selvittää "vaatimukset" puolin ja toisin, ennen kuin mitään aloittaa. Ja matalalla pro
      Ikävä
      23
      1863
    9. Turvaan tulleet lähettävät omia lapsiaan vaaraan - hullua

      MOT-ohjelman jakso ”Loma vaihtui kahleisiin” kertoi, kuinka Suomessa ja muualla Euroopassa asuvat somaliperheet lähettäv
      Maailman menoa
      36
      1684
    10. Tytti Tuppurainen nöyryyttää avustajiaan

      Tytti Tuppurainen nöyryyttää SDP:n eduskuntaryhmän kokouksissa sekä avustajia että kansanedustajia. Hän nolaa ihmisiä ju
      Kotimaiset julkkisjuorut
      181
      1520
    Aihe