Не могу найти класс после упаковки в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Не могу найти класс после упаковки в Java

Сообщение Anonymous »

Я пытаюсь сделать игру в Java и создал кадр, панель и класс Keyhandler, расположенные в одной папке. Когда я включаю надлежащие объявления пакетов в каждый из файлов класса и пытаюсь скомпилировать или запустить программу, классы не могут найти друг друга, что приводит к ошибкам компиляции. Однако, когда я полностью удаляю объявления пакета и помещаю классы в пакете по умолчанию (без имени), все компилируется и работает без каких -либо проблем.ProjectEX
----source
----Main
----GamePanel
----KeyHandler
< /code>
Сообщение об ошибке < /p>
package source;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Dimension;
import java.lang.Thread;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.Timer;

public class GamePanel extends JPanel
{
final int tileSize=16*3;
final int screenRow=18;
final int screenCol=22;
final int screenHeight=tileSize*screenRow;
final int screenWidth=tileSize*screenCol;

int playerX = 100, playerY = 100;
int speed = 10;
KeyHandler keyHandler = new KeyHandler();

public GamePanel()
{
this.setPreferredSize(new Dimension(this.screenWidth, this.screenHeight));
this.setBackground(Color.WHITE);
this.setFocusable(true);
this.addKeyListener(this.keyHandler);
this.requestFocusInWindow();

Timer timer = new Timer(16, e ->
{
update();
repaint();
});

timer.start();
}

public void update()
{
if (this.keyHandler.up)
this.playerY -= this.speed;
if (this.keyHandler.down)
this.playerY += this.speed;
if (this.keyHandler.left)
this.playerX -= this.speed;
if (this.keyHandler.right)
this.playerX += this.speed;
}

@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);

Graphics2D g2=(Graphics2D)g;
g2.setColor(Color.BLACK);
g2.fillRect(this.playerX, this.playerY, this.tileSize, this.tileSize);
g2.dispose();
}
}
< /code>
package source;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class KeyHandler implements KeyListener
{
public boolean up,down,left,right;

public KeyHandler(){}

@Override
public void keyPressed(KeyEvent e)
{
int code = e.getKeyCode();

if (code == KeyEvent.VK_W) up = true;
if (code == KeyEvent.VK_S) down = true;
if (code == KeyEvent.VK_A) left = true;
if (code == KeyEvent.VK_D) right = true;
}

@Override
public void keyReleased(KeyEvent e)
{
int code = e.getKeyCode();

if (code == KeyEvent.VK_W) up = false;
if (code == KeyEvent.VK_S) down = false;
if (code == KeyEvent.VK_A) left = false;
if (code == KeyEvent.VK_D) right = false;
}

@Override
public void keyTyped(KeyEvent e) {}
}
< /code>
I tried making another folder and packaging it inside that folder and still did the same thing

Подробнее здесь: https://stackoverflow.com/questions/795 ... ng-in-java

Вернуться в «JAVA»