2015-03-14 3 views
0

Я новичок в java и решил сделать простую игру. Я нашел этот учебник https://www.youtube.com/watch?v=iH1xpfOBN6M&list=ELmvNdIhZY1t4 и это мой код:frame.add (игра); не работает

package com.MyGame.Display; 

import java.awt.Canvas; 
import javax.swing.JFrame; 

public class Display { 

    private static final long serialVersionUID = 1L; 
    public static final int WIDTH = 800; 
    public static final int HEIGHT = 600; 
    public static final String TITLE = "MyGame Version Pre-Alpha 0.1"; 

    public static void main(String args[]){ 

     Display game = new Display(); 
     JFrame frame = new JFrame(); 
     frame.add(game); 
     frame.pack(); 
     frame.setTitle(TITLE); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(WIDTH,HEIGHT); 
     frame.setLocationRelativeTo(null); 
     frame.setResizable(false); 
     frame.setVisible(true); 
    } 
} 

Там, кажется, ошибка с frame.add (игра); кода, но ничего, что я делаю, работает. Я все пробовал. Ошибка: «Метод add (Component) в типе Container не применим для аргументов». Это должно быть быстрое исправление, поэтому я надеюсь, что вы сможете помочь!

+0

'Дисплей' не является компонентом поворота. –

ответ

0

Вам нужен дисплей для расширения (В СООТВЕТСТВИИ С ЧЕМУ ЧЕЛОВЕК) Холст. Вы не можете добавлять случайные вещи в JFrames в Java.

Лучше сделать что-то вроде этого

public class Game extends JFrame { 

    public Game() { 

     initUI(); 
    } 

    private void initUI() { 


     pack(); 
     repaint(); 

     setResizable(false); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLocationRelativeTo(null); 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       Game g = new Game(); 
       g.setVisible(true); 
       running = true; 
       Update update = new Update(); 
      } 
     }); 

    } 
+4

Нет, ** пожалуйста ** не советуйте ему смешивать компоненты AWT и Swing. –

+0

@HovercraftFullOfEels Вот что в [учебнике] (https://www.youtube.com/watch?v=iH1xpfOBN6M&list=ELmvNdIhZY1t4);) –

+1

@ Eng.Fouad: тогда это страшный и устаревший учебник. Лучше начать с учебников Swing. –

3

Вы пытаетесь добавить объект Display в JFrame, но то, что этот экранный объект? Он не распространяется на любые компоненты Swing, такие как JPanel, и поэтому вы действительно не можете добавить его в JFrame, так как это не имеет смысла, не имеет смысла.

Рассмотрим:

  • , имеющий дисплей продлить JPanel
  • чтения/изучения Swing, учебники. Вы можете найти ссылки на обучающие программы Swing и другие ресурсы Swing: Swing Info.
  • Также ознакомьтесь с основными учебными пособиями по Java и научитесь часто использовать и использовать Java API.

Как рекомендация nitpick, в будущем вы захотите избежать высказывания в ваших вопросах, похожих на: «Я пробовал все». поскольку они никоим образом не помогают понять вашу проблему и относятся к типу заявлений, которые являются «приманкой для голосования».

+0

поэтому, если я удалю frame.add (игра); полностью это сработает? – tacomanmagic

+1

@tacomanmagic: этот вопрос лучше всего попросить. Но я могу сказать вам, что, вероятно, ваш код будет * компилироваться *, но будет ли он делать что-нибудь значимое? Наверное, нет. –

Смежные вопросы