Я новичок в Java и особенно в JFRAME. Я изучаю основные разработки игр, и я создал простой класс для вывода некоторых графических элементов. Вот мой код:Java и JFrame «NoClassDefFoundError»
package jframedemo;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo extends JFrame {
public JFrameDemo(){
super("JFrameDemo");
setSize(400,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.WHITE);
g.fillRect(0,0,400,400);
g.setColor(Color.RED);
g.setFont(new Font("Arial", Font.BOLD, 18));
g.drawString("Doing graphics with JFrame!!", 60, 200);
}
public static void main(String[] args){
new JFrameDemo();
}
}
Хотя во время компиляции все идет, как хорошо, когда я пытаюсь выполнить программка, я получаю следующее сообщение об ошибке:
Исключение в потоке «основного» java.lang.NoClassDefFoundError: JFrameDemo (неправильное имя: jframedemo/JFrameDemo)
Я работаю над Linux Mint 15, а моя версия Java - это 1.7.0_25 среда выполнения OpenJDK. Любые предложения, почему это происходит?
OT: Вы не хотите, чтобы сделать изготовленную на заказ картину в контейнерах верхнего уровня в свинге , Расширьте JPanel и переопределите 'paintComponent' – Reimeus
Вместо того, чтобы создавать папки вручную, представляющие пакет, вместо этого используйте опцию' -d' 'javac'. Создайте папку под названием 'project', внутри которой создаются две папки:' source (для сохранения .java-файлов) 'и' build (для размещения файла после компиляции) '. Теперь просто зайдите в папку 'project' через терминал и напишите' javac -d build source/JFrameDemo.java', это автоматически создаст папку с именем 'jframedemo' в папке' build'. Теперь изнутри 'project', напишите' java jframedemo.JFrameDemo' для выполнения программы. Больше вариантов можно увидеть, просто набрав 'javac' на терминале :-) –
Да, это здорово! Спасибо :) – manosagent