Почему я не могу выполнить свой код? [Дубликат]

Вы используете объект, содержащий ссылку нулевого значения. Таким образом, он дает пустое исключение. В примере строковое значение равно null, и при проверке его длины произошло исключение.

Пример:

string value = null;
if (value.Length == 0) // <-- Causes exception
{
    Console.WriteLine(value); // <-- Never reached
}

Ошибка исключения:

Необработанное исключение:

System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. в Program.Main ()

0
задан shahensha 6 August 2010 в 07:11
поделиться

4 ответа

java довольно прост, когда вы даете ему файл класса, он будет загружать его и попробовать выполнить программу. Программы Java определены для начала в методе «public static void main (String ... args)». Таким образом, файл класса, отсутствующий в этой функции, не имеет допустимой точки входа для программы.

Чтобы заставить java вызывать метод paintComponent (), вам нужно добавить экземпляр вашего класса в контейнер верхнего уровня, например JFrame или для веб-сайта приложений JApplet. (Апплеты не используют основной метод, поскольку они выполняются как часть веб-страницы, а не отдельное приложение.)

Пример:

import javax.swing.*
public class MyDrawPanel{
     public static void main(String... args)
     {
         JFrame frame = new JFrame(200,200);//A window with 200x200 pixel
         MyDrawPanel mdp = new MyDrawPanel();//Panel instance
         frame.add(mdp);//Add the panel to the window
         frame.setVisible(true);//Display all
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//exit when the window is closed

     }
}
1
ответ дан josefx 4 September 2018 в 10:30
поделиться

Нужно ли иметь основной метод в каждом классе, который мы хотим запустить?

Вам нужен класс с основным методом для запуска JVM.

Невозможно запустить JVM любой класс, который не имеет основного метода.

Не изначально.

Здесь я не требую основного класса, я думаю, потому что этот метод paintComponent должен вызываться системой, правда?

Неверно. Это правда, что метод paintComponent() в конечном итоге будет вызван «системой», в частности, Swing Event Dispatch Thread. Но сначала это нужно запустить, что происходит неявно, когда вы создаете окно и делаете его видимым. И это, в свою очередь, может произойти только в основном методе.

1
ответ дан Michael Borgwardt 4 September 2018 в 10:30
поделиться

Как сказал водханг, вам нужен «главный» метод. Убедитесь, что он выглядит так:

public static void main(String[] args)
{
  // your code here.  
  // this example will use your panel:

  // create a new MyDrawPanel 
  MyDrawPanel panel = new MyDrawPanel();

  // create a frame to put it in
  JFrame f = new JFrame("Test Frame");
  f.getContentPane().add(panel);

  // make sure closing the frame ends this application
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  // show the frame
  f.setSize(100,100);
  f.setVisible(true);

}

Да, для каждой программы Java, которую вы хотите запустить, нужен основной метод с такой точностью:

  public static void main(String[] args)

Вы можете запускать java-код из других систем (например, веб-серверов и т. д. без «основного»), но для его простого запуска главная точка входа. Поместите его туда, где вы хотите запустить запущенную программу.

При запуске убедитесь, что вы получили имя класса, чтобы помочь найти его основной метод. В вашем случае, если вы запускаете java вручную в том же каталоге, что и ваш файл MyDrawPanel.class, вы бы это сделали:

  java -cp . MyDrawPanel

Если вы работаете из инструмента разработчика, он будет предоставлять способ запустить класс, на который вы смотрите.

1
ответ дан Paul Jowett 4 September 2018 в 10:30
поделиться

Вам нужен основной метод в классе, для которого вы хотите запустить программу. Это обязательно. Как JVM может знать, какой метод они должны вызывать для запуска, если у вас есть несколько методов. Они могут догадываться, но большую часть времени догадка может пойти не так. Таким образом, простой простой метод поможет

0
ответ дан vodkhang 4 September 2018 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: