Namen von packages ändern

TryHard

Neues Mitglied
Hallo,
ich wollte ganz einfach nur die Namen der packes ändern (refactor->rename->"Update references & rename subpackages". Nun funktioniert meine Main Klasse nicht mehr.Hier der Code mit geändertem package-Namen. Und dann noch eine kleine Sache. Vor dem ändern des Namens gab es auch schon eine Fehlermeldung bei der Mainklasse: javax.imageio.IIOException: Can't read input file!.....
Hier wird ein Profil.PNG Importiert, welches sich aber im "ressource Ordner befindet und auch korrekt benannt ist. Der Fehler tritt nur auf, wenn das Projekt irgendwo anders importiert wird.
Schon mal Danke für eure Hilfe.


Java:
package de.info.Tavli;

import java.awt.EventQueue;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

import de.info.Tavli.controller.GameController;
import de.info.Tavli.controller.GameControllerImpl;
import de.info.Tavli.model.CheckerModel;
import de.info.Tavli.model.GameModel;
import de.info.Tavli.model.PlayerEnum;
import de.info.Tavli.model.PlayerModel;
import de.info.Tavli.model.PointModel;
import de.info.Tavli.view.AdsView;
import de.info.Tavli.view.BoardView;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;

public class MainWindow {

    private JFrame frame;
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainWindow window = new MainWindow();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public MainWindow() {
        try {
            initialize();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * Initialize the contents of the frame.
     * @throws IOException
     */
    private void initialize() throws IOException {
        frame = new JFrame();
        frame.setBackground(new Color(8, 30, 48));
        frame.getContentPane().setBackground(new Color(255, 255, 255));
        
        JPanel adsPanel = new AdsView();
        adsPanel.setBackground(Color.white);
        adsPanel.setPreferredSize(new Dimension(640, 50));
        frame.getContentPane().add(adsPanel, BorderLayout.NORTH);
        
        frame.setBounds(100, 100, 1198, 650);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        ClassLoader classLoader = getClass().getClassLoader();
        File file = new File(classLoader.getResource("blank_profile.png").getFile());
        
        PlayerModel playerModel = new PlayerModel();
        playerModel.setColor(Color.red);
        playerModel.setName("Nickname Player 1");
        playerModel.setPlayer(PlayerEnum.PLAYER_1);
        playerModel.setImage(ImageIO.read(file));
        
        PlayerModel playerModel2 = new PlayerModel();
        playerModel2.setColor(Color.black);
        playerModel2.setName("Nickname Player 2");
        playerModel2.setPlayer(PlayerEnum.PLAYER_2);
        playerModel2.setImage(ImageIO.read(file));

        PointModel pointModelOutA = new PointModel();
        pointModelOutA.getCheckers().add(new CheckerModel(playerModel));
        
        PointModel pointModelOutB = new PointModel();
        pointModelOutB.getCheckers().add(new CheckerModel(playerModel2));
        
        PointModel pointModelB = new PointModel();
        pointModelB.getCheckers().add(new CheckerModel(playerModel));
        pointModelB.getCheckers().add(new CheckerModel(playerModel));
        
        PointModel pointModelC = new PointModel();
        pointModelC.getCheckers().add(new CheckerModel(playerModel2));
        pointModelC.getCheckers().add(new CheckerModel(playerModel2));
        
        GameModel gameModel = new GameModel();
        gameModel.getPoints().put(-1, pointModelOutA);
        gameModel.getPoints().put(-2, pointModelOutB);
        gameModel.getPoints().put(21, pointModelB);
        gameModel.getPoints().put(7, pointModelC);
        
        gameModel.setPlayer1(playerModel);
        gameModel.setPlayer2(playerModel2);

        gameModel.setBarSizePlayer1(5);
        gameModel.setBarSizePlayer2(12);
        
        gameModel.setMaxTimeInS(30);
        gameModel.setTimeLeftInS(21);
        
        gameModel.setCurrentTurn(PlayerEnum.PLAYER_2);
        
        gameModel.setDiceLeft(6);
        gameModel.setDiceRight(5);
        
        GameController controller = new GameControllerImpl(gameModel);
        frame.getContentPane().add(controller.getView(), BorderLayout.CENTER);

        JMenuBar menuBar = new JMenuBar();
        frame.setJMenuBar(menuBar);
        
        JMenu mnNewMenu = new JMenu("Menü");
        menuBar.add(mnNewMenu);
        
        JMenuItem mntmNewMenuItem = new JMenuItem("Regeln");
        mnNewMenu.add(mntmNewMenuItem);
        
        JMenuItem cancelMenuItem = new JMenuItem("Abbrechen");
        mnNewMenu.add(cancelMenuItem);
    }

}
 
1. Packages werden klein geschrieben
2. Wie ist die Fehlermeldung? Oder sollen wir raten?
3. Zum Laden von Bildern/Resourcen gibt es schon x Beiträge. Die Forensuche hilft da bestimmt weiter.
 
Der Fehler tritt nur auf, wenn das Projekt irgendwo anders importiert wird.
Was klar ist: Du willst Du Ressourcen über die normale File IO Operationen zugreifen. Das geht so nicht! Die Dateien sind dann ja in der Regel keine eigenständigen Dateien mehr sondern in einer jar Datei oder ähnliches.

getResource gibt nicht ohne Grund eine URL zurück und getResourceAsString einen InputStream. Diese können verwendet werden, aber dieses toFile() das ist da schlicht nicht möglich!
 
Oh sry, hatte die Fehlermeldung nach der Namensänderung vergessen mit reinzupacken . Hier ist sie:

Error: Could not find or load main class de.info.Tavli.MainWindow
Caused by: java.lang.ClassNotFoundException: de.info.Tavli.MainWindow

@ KonradN Danke für die Antwort
 
Liegt die Klasse im richtigen Verzeichnis? (de/info/Tavli/MainWindow.java)
Und wurde alles richtig übersetzt?
 

Zurück
Oben