@Simasik

Почему программа может не запускаться?

Есть код написан на java:
import java.awt.*;
import java.awt.event.*;
class Party{
	public void buildInvite(){
		Frame f = new Frame();
		Label l= new Label("Вечеринка у Тими");
		Button b = new Button("Ваша ставка");
		Button c = new Button("Сбросить");
		Panel p = new Panel();
		p.add(l);
		
	}
}

Код был скомпилирован, но при выполнении команды "java Party" через консоль выдаёт ошибку. Что делать?
  • Вопрос задан
  • 2542 просмотра
Пригласить эксперта
Ответы на вопрос 5
@IceJOKER
Web/Android developer
Научиться разбираться в том, что выдает консоль, если не хватает знаний, то напишите сюда, что он выдает.

входная точка в java - метод main , если код выше - это единственное, что есть в проекте, то в этом и есть проблема.
Если не знаете как писать можно же просто посмотреть видеоуроки.
Да и можно код ошибки вбить в интернет, ни разу не подводил данный способ решения проблемы
Ответ написан
zhulikovatyi
@zhulikovatyi
Насколько мне известно, в Java-классе, который мы хотим запускать, должна быть входная точка в виде метода main
class MyClass {

    public static void main(String[] args) {
        // call buiIdInvite method
    }

}
Ответ написан
@booogabooo
+ ко всему этому Panel нужно добавить на Frame
f.getContentPane().add(p);
Ответ написан
@asd111
Посмотрите какую нибудь книжку по Swing или по JavaFX.
Tutorial по Swing docs.oracle.com/javase/tutorial/uiswing/index.html
Tutorial по JavaFX docs.oracle.com/javase/8/javase-clienttechnologies.htm
Ниже пример HelloWorld на JavaFX

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
 
public class Party extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {
 
            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });
        
        StackPane root = new StackPane();
        root.getChildren().add(btn);

 Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
 public static void main(String[] args) {
        launch(args);
    }
}
Ответ написан
Комментировать
zo0m
@zo0m
full stack developer
Почему вы не разобравшись в базовых вещах пытаетесь что-то сделать и рассчитываете на успех?
1. Прочитать хотяб начало книги по Java.
2. Запустить программу, которая выведет вам Hello, world.
3. По кускам втащить в программу ваш код и каждый раз перекомпиливать и ждать пока она не запустится, как только не запуститься - вот ваша проблема.

Альтернативный путь для ленивых:
1. Гуглим : "awt examples in java"
2. Буквально третья ссылка : www.tutorialspoint.com/javaexamples/gui_text.htm
3. Там код:
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JPanel{
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;
      g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
      RenderingHints.VALUE_ANTIALIAS_ON);
      Font font = new Font("Serif", Font.PLAIN, 96);
      g2.setFont(font);
      g2.drawString("Text", 40, 120);
   }
   public static void main(String[] args) {
      JFrame f = new JFrame();
      f.getContentPane().add(new Main());
      f.setSize(300, 200);
      f.setVisible(true);
   }
}


вот с этого и начинать ковырять.
Я AWT давно не видел в глаза, но мне кажется вам нужно класс Party отнаследовать от JPanel как в примере выше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы