Jak to zrobic (lamerskie) ?

Oglądasz archiwalną wersję wątku "Jak to zrobic (lamerskie) ?" z forum pl.comp.lang.java



mirek - 10 Lis 2002, 07:00
Mam taki kod źródłowy:

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

class Nowy implements ActionListener {
         public static void main(String[] args) {
                 JFrame ramka = new JFrame();
                 JPanel panel = new JPanel();
                 JButton ok = new JButton("OK");
                 ok.addActionListener();
                 panel.add(ok);
                 ramka.setContentPane(panel);
                 ramka.setSize(300, 100);
                 ramka.setTitle("Nowy");
                 ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 ramka.setVisible(true);
         }

         public void actionPerformed(ActionEvent e) {
                 Object source = e.getSource();
                 System.exit(0);
         }

}



Przy kompilacji wywala błąd:

Nowy.java:9: addActionListener(java.awt.event.ActionListener) in
javax.swing.AbstractButton cannot be applied to ()
                 ok.addActionListener();
                   ^
1 error

Nie wiem jaki obiekt umieścić w nawiasach addActionListener. Gdyby kotś
mógłby doradzić




Szmon - 10 Lis 2002, 07:56
W tym przypadku umiesc "this" w nawiasie/
Mam taki kod źródłowy:

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

class Nowy implements ActionListener {
         public static void main(String[] args) {
                 JFrame ramka = new JFrame();
                 JPanel panel = new JPanel();
                 JButton ok = new JButton("OK");
                 ok.addActionListener();
                 panel.add(ok);
                 ramka.setContentPane(panel);
                 ramka.setSize(300, 100);
                 ramka.setTitle("Nowy");
                 ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 ramka.setVisible(true);
         }

         public void actionPerformed(ActionEvent e) {
                 Object source = e.getSource();
                 System.exit(0);
         }
}

Przy kompilacji wywala błąd:

Nowy.java:9: addActionListener(java.awt.event.ActionListener) in
javax.swing.AbstractButton cannot be applied to ()
                 ok.addActionListener();
                   ^
1 error

Nie wiem jaki obiekt umieścić w nawiasach addActionListener. Gdyby kotś
mógłby doradzić





mirek - 10 Lis 2002, 12:18

W tym przypadku umiesc "this" w nawiasie/



Nowy.java:9: non-static variable this cannot be referenced from a static
context
                 ok.addActionListener(this);
                                      ^
1 error

I co z tym zrobić?



mirek - 10 Lis 2002, 12:32


| W tym przypadku umiesc "this" w nawiasie/

Nowy.java:9: non-static variable this cannot be referenced from a static
context
                ok.addActionListener(this);
                                     ^
1 error

I co z tym zrobić?



Ha, wystarczyło zamiast this wpisać:
ok.addActionListener(new Nowy);
Tak czy siak dzięki.




dariuszb - 12 Lis 2002, 05:06

Mam taki kod źródłowy:

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

class Nowy implements ActionListener {
         public static void main(String[] args) {
                 JFrame ramka = new JFrame();
                 JPanel panel = new JPanel();
                 JButton ok = new JButton("OK");
                 ok.addActionListener();
                 panel.add(ok);
                 ramka.setContentPane(panel);
                 ramka.setSize(300, 100);
                 ramka.setTitle("Nowy");
                 ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 ramka.setVisible(true);
         }

         public void actionPerformed(ActionEvent e) {
                 Object source = e.getSource();
                 System.exit(0);
         }
}

Przy kompilacji wywala błąd:

Nowy.java:9: addActionListener(java.awt.event.ActionListener) in
javax.swing.AbstractButton cannot be applied to ()
                 ok.addActionListener();
                   ^
1 error

Nie wiem jaki obiekt umieścić w nawiasach addActionListener. Gdyby kotś
mógłby doradzić



ten kod w actionPerormed(); jest nie potrzebny chyba że wstawisz warunek:
if(e.getSource()==ok)itd...

pisząc ok.addActionListener(new Nowy) tworzysz niepotrzebnie nowy obiekt Nowy.

lepiej wywieść nową klasę z JFrame gdzie dodasz w konstróktorze button i
sprawa załatwiona.



Tomasz Mielcarz - 12 Lis 2002, 06:38
Wydaje mi sie, ze tak jest bardziej elegancko :)
Glownie chodzi o to, zeby w main() nie umieszczac niepotrzebnego kodu,
a poza tym przy ponizszej implementacji mozna tworzyc to okno nie tylko
z poziomu metody main().

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

class Nowy extends JFrame implements ActionListener {

            private JButton ok = new JButton("OK");

        public Nowy() {
                JPanel panel = new JPanel();
            ok.addActionListener(this);
            panel.add(ok);
            setContentPane(panel);
            setSize(300, 100);
            setTitle("Nowy");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
        }

         public void actionPerformed(ActionEvent e) {
           if (e.getSource() == ok) {
                   System.exit(0);
           }
         }

         public static void main(String[] args) {
        Nowy nowy = new Nowy();
         }

}



_tm_


JSF, logout i back button , czyli jak zrobić eleganckie wylogowanie ? ;)
jak zrobic aby co 2 sekundy pobrał na nowo plik jpg z servera
Jak zrobic efekt podobny jak przy zamykaniu Win XP?
JComboBox - jak zrobic WARTOSC i TEKST jak w HTMLowym SELECT
  • pielegniarki opieka kielce
  • czemu po moim routerze jest getaway a potem
  • kretynskie smsy od roznych reklamodawcow
  • smieszne teksty historie
  • drzewka do kupienia
  • katowice awf fizjoterapia egzaminy
  • java;warcaby
  • tunezyjski aar 1066 1820
  • o symbianie na powaC2 nie czyli
  • Zbieranina wiadomości z for dyskusyjnych || Indeks