Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Popup-valikko Javalla

Sivun loppuun

sypress [19.10.2007 20:15:35]

#

Miten saan popup-valikon näkymään oikein? Nyt koodissa on tämä:

public class JPanel extends javax.swing.JPanel // 3. virheilmoitus
{
    private JPopupMenu popup;
    {
        initComponents();
    }
 private void initComponents() {
       addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                formMousePressed(evt);
            }
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                formMouseReleased(evt); // 4. virheilmoitus
            }
        });

    private void formMouseReleased(java.awt.event.MouseEvent evt)
   {
        showPopup(evt); // 2. virheilmoitus
    }
    private void formMousePressed(java.awt.event.MouseEvent evt)
   {
          showPopup(evt);
    }
    private void showPopup(MouseEvent evt)
    {
      if (evt.isPopupTrigger())
      {
       popup.show(evt.getComponent(), evt.getX(), evt.getY());//1. virheilmoitus
      }
    }

Mod. lisäsi kooditagit

Blaze [19.10.2007 20:32:53]

#

sypress kirjoitti:

Miten saan popup-valikon näkymään oikein? Nyt koodissa on tämä:

    private JPopupMenu popup;
    {
        initComponents();
    }

Tässä ensin luot jäsenmuuttujan popup, ja sitten jonkun lohkon, jolla ei ole mitään nimeä. Sen ilmeisesti pitäis olla konstruktori, eli

    private JPopupMenu popup;

    public JPanel() {
        initComponents();
    }

sypress kirjoitti:

 private void initComponents() {

Tämän metodin lopettava aaltosulku puuttuu.
Lisäks lopusta puuttuu vielä luokan määrittelyn lopettava aaltosulku.

sypress [19.10.2007 20:57:53]

#

On ne siellä, jäi vain tosta pois. En vaan ymmärrä mistä se nuo virheilmotukset vetää... ? ! ?

tsuriga [20.10.2007 01:38:31]

#

Mitkä virheilmoitukset? Virheilmoitukset ovat yleensä suhteellisen selkokielisiä. Suosittelen tuomaan nuo paketit koodin alussa sen sijaan, että viittaat suoraan luokkiin pakettien sisältä. Yhestä viittauksesta puuttuu paketin nimi.

sypress [20.10.2007 18:55:44]

#

tsuriga kirjoitti:

Yhestä viittauksesta puuttuu paketin nimi.

Mistä niistä?

tsuriga [20.10.2007 19:29:15]

#

MouseEventistä (silmä kätteen).

sypress [20.10.2007 19:31:46]

#

No höh! Kiitti!
Paitsi ettei se vieläkään toimi, tällanen virheilmotus tulee:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

tuossa MouseReleasedissa taitaa olla jotain väärin

kayttaja-2499 [20.10.2007 23:54:08]

#

Vaikuttaisi siltä että popup osoittaa nulliin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta