有没有办法在扫描仪触发时使用控制台打开连接到类的窗口?

时间:2014-12-20 10:22:00

标签: java windows string jframe jpanel

好的,我的游戏运行正常。我最近添加了新的困难。那些工作也是如此。现在我把头撞在墙上,找出如何将它们连接在一起。现在游戏在发布时不会被控制台操作,但这是测试,所以我确保我可以将其关闭。

这里是其中一个难点的GUI(不包括游戏逻辑):

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g.setColor(Color.DARK_GRAY);
    Rectangle2D rect3 = new Rectangle2D.Double(395, 0, 10, 800);
    g2.fill(rect3);
    g.setColor(Color.CYAN);
    Ellipse2D circle = new Ellipse2D.Double(ballX, ballY, ballrad, ballrad);
    g2.fill(circle);
    g.setColor(Color.LIGHT_GRAY);
    Rectangle2D rect = new Rectangle2D.Double(rectX, rectY, 20, 200);
    g2.fill(rect);
    g.setColor(Color.LIGHT_GRAY);
    Rectangle2D rect2 = new Rectangle2D.Double(rect2X, rect2Y, 20, 200);
    g2.fill(rect2);
    g.setColor(Color.GRAY);
    Font font = new Font("Sans-Serif", Font.PLAIN, 32);
    g2.setFont(font);
    g2.drawString(String.valueOf(lPlayerScore), 340, 100);
    g.setColor(Color.GRAY);
    Font font2 = new Font("Sans-Serif", Font.PLAIN, 32);
    g2.setFont(font2);
    g2.drawString(String.valueOf(rPlayerScore), 435, 100);
    dest.start();
}

如果我将此类连接到基本窗​​口类,它将完美地工作。一个基本的窗口类,意思是弹出一个等待输入内容的窗口。

现在,我只想用1模式呈现窗口扫描器打开逻辑,这样你就可以看到我的意思了:

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JFrame;

import java.awt.*;

import javax.swing.*;

import java.awt.Canvas;

import javax.swing.JFrame;

import java.applet.*;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.Color;

import javax.swing.JPanel;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.Graphics2D;
import java.awt.Graphics;
import java.util.Formatter;
import java.util.Scanner;

public class screen extends JFrame{
    private static final long serialVersionUID = 1L;
    public static void main(String args[])
    {
        String askeasy = "Easy";
        Scanner scan = new Scanner(System.in);
        String chosenmode = scan.nextLine();

        if (chosenmode == askeasy)
        {
            parts parts = new parts();
            JFrame frame = new JFrame();
            frame.add(parts);
            frame.setVisible(true);
            frame.setSize(800, 800);
            frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
            frame.setTitle("Pong");
            frame.addKeyListener(parts);
        }
    }
}

每当我运行这个更高级的屏幕类时,我都会没有

任何类型的反馈都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

你必须改变

(chosenmode == askeasy)

askeasy.equals(chosenmode)

有关详细信息:How do I compare strings in Java?