Problem z wyświetlaniem Grafiki

0
import java.awt.*;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class MyWindow extends JFrame
{

//************tryb pelnoekranowy
    public class ScreenManager
    {
      private GraphicsDevice device;
      public ScreenManager()
      {
          GraphicsEnvironment localEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
          device = localEnvironment.getDefaultScreenDevice();
      }

      public void setFullScreen(DisplayMode displayMode, JFrame window)
      {
         window.setUndecorated(true);
         window.setResizable(false);

         device.setFullScreenWindow(window);
         if (displayMode != null && device.isDisplayChangeSupported())
         {
             try
             {
                 device.setDisplayMode(displayMode);
             }
             catch(IllegalArgumentException ex)
             {
             }
         }
      }

      //zwraca okno wykorzystywane w trybie pełnoekranowym
      public Window getFullScreen()
      {
          return device.getFullScreenWindow();
      }

      //Przywraca początkowy tryb wyświtlania
      public void restoreScreen()
      {
          Window window = device.getFullScreenWindow();
          if(window != null)
          {
              window.dispose();
          }
          device.setFullScreenWindow(null);
      }
    }
   
//**********ustawienia ekranu
    public void setScreen()
    {
        DisplayMode dispalyMode = new DisplayMode(0, 0, 0, DisplayMode.REFRESH_RATE_UNKNOWN);
        
        setBackground(Color.white);
        setForeground(Color.blue);
        setFont(new Font("Dialog", Font.PLAIN, 24));
        ScreenManager screen = new ScreenManager();
        screen.setFullScreen(dispalyMode, this);
    }
//**********RYSOWANIE I GRAFIKA

    public Image loadImage()
    {
        ImageIcon icon = new ImageIcon("maliwojownicy/hero_ruch_p.png");
        Image heroImage = icon.getImage();
        repaint();
        return heroImage;
    }
    public void paint(Graphics g)
    {
        g.drawImage(loadImage() , 100, 100, null);
    }
}

może mi ktoś powiedzieć czemu nie wyświetla mi obrazka?
teoretycznie powinienem użyć:

ImageIcon icon = new ImageIcon(ADRES);
Image image = icon.getImage();

użyłem i nic:(
prosze o wyrozumiałość jestem początkujący w Javie:)

0
  1. Czy nazwa pliku jest poprawna?
  2. Wtf?
    public Image loadImage()
    {
        ImageIcon icon = new ImageIcon("maliwojownicy/hero_ruch_p.png");
        Image heroImage = icon.getImage();
        repaint();
        return heroImage;
    }
    public void paint(Graphics g)
    {
        g.drawImage(loadImage() , 100, 100, null);
    }

drawImage() wywołuje loadImage(), loadImage() wywołuje repaint(), repaint() wywołuje paint(), paint() wywołuje drawImage(),.... Stack overflow.

0

mm nazwa pliku jest na pewno dobra, a jak w takim razie poprawić loadImage?
w ogóle ciągle nie rozumiem kilku rzeczy:
1)Gdybym zrobił coś takiego:
Graphics g;
public void loadImage()
{
ImageIcon icon = new ImageIcon("maliwojownicy/hero_ruch_p.png");
Image heroImage = icon.getImage();
g.drawImage(heroImage, 100, 100, null);
}

0

niechcący wysłałem ...
w każdym razie gdybym tego użył, bez metody paint(), to czemu samo to nie działa? Jak na moje mam już okno, i wywołuje metode loadImage() -w głównej klasie; wyświetljącą obrazek w danym miejscu, więc po co funkcja paint?
2)
public void setScreen()
{
DisplayMode dispalyMode = new DisplayMode(0, 0, 0, DisplayMode.REFRESH_RATE_UNKNOWN);

    setBackground(Color.white);
    setForeground(Color.blue);
    setFont(new Font("Dialog", Font.PLAIN, 24));
    ScreenManager screen = new ScreenManager();
    screen.setFullScreen(dispalyMode, this);
}

zaczyna działać dobie gdy każe wypisać jakiś tekst na ekran, nie można zrobić aby od razu ekran był czarny?

0

Nie pracowałem w trybie pełnoekranowym i nic o nim nie wiem.
W normalnym trybie paint() jest po to by odrysować na nowo (bo np. użytkownik czasowo zakrył okno programu innym oknem).

0

mm mam podobny problem, korzystam z ww funkcji, ale nie działa:(

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