Kompilacja z przykładami z książki Podstawy Javy :(

0

Witam,
Mam problem z kompilacją tego programu z książki co muszę zrobić?
Wyświetla mi się w eclipse The selection cannot be launched, and there are no recent lauches.

Kod:
package button;

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

/**

  • Ramka z panelem zawierającym przyciski
    */
    public class ButtonFrame extends JFrame
    {
    private JPanel buttonPanel;
    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 200;

    public ButtonFrame()
    {
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

    // Tworzenie przycisków
    JButton yellowButton = new JButton("Yellow");
    JButton blueButton = new JButton("Blue");
    JButton redButton = new JButton("Red");

    buttonPanel = new JPanel();

    // Dodanie przycisków do panelu
    buttonPanel.add(yellowButton);
    buttonPanel.add(blueButton);
    buttonPanel.add(redButton);

    // Dodanie panelu do ramki
    add(buttonPanel);

    // Utworzenie akcji przycisków
    ColorAction yellowAction = new ColorAction(Color.YELLOW);
    ColorAction blueAction = new ColorAction(Color.BLUE);
    ColorAction redAction = new ColorAction(Color.RED);

    // Powiązanie akcji z przyciskami
    yellowButton.addActionListener(yellowAction);
    blueButton.addActionListener(blueAction);
    redButton.addActionListener(redAction);
    }

    /**

    • Słuchacz akcji ustawiający kolor tła panelu.
      */
      private class ColorAction implements ActionListener
      {
      private Color backgroundColor;

      public ColorAction(Color c)
      {
      backgroundColor = c;
      }

      public void actionPerformed(ActionEvent event)
      {
      buttonPanel.setBackground(backgroundColor);
      }
      }
      }

0

Nie ma tu nigdzie klasy z metodą main więc co mialoby sie odpalić? o_O

0

Jak poprawić ten kod żeby była metoda main? Bardzo dziękuję za pomoc i proszę o wyrozumiałość :P

0

Proponuje ją dopisać. A dodatkowo zrozumieć jaka jest różnica między KLASĄ a OBIEKTEM.

0

BartekJava tylko musisz wstawić tego maina w odpowiednie miejsce bo jak dopiszesz na końcu to zaraz będziesz zadawał pytanie dlaczego to nie działa

0

Kod w tej książce, został skrócony i pominięto klasę z metodą main, gdzie tworzy się całą ramkę itd. Pobierz sobie kod źródłowy do tej książki - powinien być dostępny w internecie.

0

Bardzo dziękuję za pomoc. Bardzo proszę o pokazanie w które miejsce wstawić public static void main(String[] args) bo wstawiam w różne miejsca próbując stworzyć klasę główną ale niestety nie radzę sobie z tym. Kod który zamieściłem pochodzi z kodów źródłowych w javie.

0

Doszedłem do czegoś takiego ale program dalej nie działa. Czy ktoś może wskazać gdzie zrobiłem błąd?

package buttonframe;

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

/**

  • Ramka z panelem zawierającym przyciski
    */
    public class ButtonFrame extends JFrame
    {
    private JPanel buttonPanel;
    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 200;

    public ButtonFrame()
    {
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

    // Tworzenie przycisków
    JButton yellowButton = new JButton("Yellow");
    JButton blueButton = new JButton("Blue");
    JButton redButton = new JButton("Red");

    buttonPanel = new JPanel();

    // Dodanie przycisków do panelu
    buttonPanel.add(yellowButton);
    buttonPanel.add(blueButton);
    buttonPanel.add(redButton);

    // Dodanie panelu do ramki
    add(buttonPanel);

    // Utworzenie akcji przycisków
    ColorAction yellowAction = new ColorAction(Color.YELLOW);
    ColorAction blueAction = new ColorAction(Color.BLUE);
    ColorAction redAction = new ColorAction(Color.RED);

    // Powiązanie akcji z przyciskami
    yellowButton.addActionListener(yellowAction);
    blueButton.addActionListener(blueAction);
    redButton.addActionListener(redAction);
    }

    /**

    • Słuchacz akcji ustawiający kolor tła panelu.
      */
      private class ColorAction implements ActionListener
      {
      private Color backgroundColor;

      public ColorAction(Color c)
      {
      backgroundColor = c;
      }

      public void actionPerformed(ActionEvent event)
      {
      buttonPanel.setBackground(backgroundColor);
      }
      }

    public static void main(String args[]) {
    new ButtonFrame();
    }
    }

1

W fragmencie który dopisałeś:

 public static void main(String args[]) {
       new ButtonFrame();
       }

zmień na coś takiego:

 public static void main(String args[]) {
       JFrame okienko = new ButtonFrame();
       okienko.setVisible( true );
       }

Jak widzisz oprócz utworzenia obiektu klasy ButtonFrame(), wymagane jest także wywołanie metody setVisible() z argumentem true.

0

Schakal bardzo Ci dziękuję dzięki Tb mogę się dalej uczyć Javy :) Wielkie dzięki :)

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