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
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.
On ne siellä, jäi vain tosta pois. En vaan ymmärrä mistä se nuo virheilmotukset vetää... ? ! ?
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.
tsuriga kirjoitti:
Yhestä viittauksesta puuttuu paketin nimi.
Mistä niistä?
MouseEventistä (silmä kätteen).
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
Vaikuttaisi siltä että popup osoittaa nulliin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.