java - 在 sfml 中打印 block

标签 java swing import sfml jsfml

我正在用java编写一个程序,当我单击按钮时,我想在新窗口中传递,但是当我运行该程序时,如果我不按按钮,它也会自动打开两个 View 。什么可以我要解决这个问题吗?

主要:

package com.SimplyGeometry.src.tiles;

import com.SimplyGeometry.src.windows.SelectWindow;
import com.SimplyGeometry.src.windows.StartWindow;

public class Main {

    public static void main(String[] args) {
        String title = "SimplyGeometry";
        int WIDTH = 1320, HEIGHT = 840;
        StartWindow stw = new StartWindow(/*WIDTH, HEIGHT, title*/);
    }

}

Vew1:

package com.SimplyGeometry.src.windows;


import javax.swing.*;

import Actions.Actions;


public class StartWindow implements ActionListener {

    public static JFrame window;
    SelectWindow sw;

    public StartWindow(/*int WIDTH, int HEIGHT, String title*/) {

        window = new JFrame("SimplyGeometry");
        window.setPreferredSize(new Dimension(1320, 840));
        window.setMaximumSize(new Dimension(1320, 840));
        window.setMinimumSize(new Dimension(1320, 840));
        window.setLocationRelativeTo(null);
        window.setResizable(false);

        JPanel panel = new JPanel();
        panel.setLayout(null);
        panel.setBounds(0, 0, 1320, 840);
        panel.setBackground(Color.CYAN);

        JLabel label = new JLabel();
        label.setIcon(new ImageIcon("/Users/gaetanodonnarumma/Documents/workspace/SimplyGeometry(Complete)/src/Images/titolo.png"));
        label.setSize(650, 250);
        label.setLocation(320, 100);

        JButton button = new JButton("Start");
        button.setBackground(Color.white);
        button.setForeground(Color.black);
        button.setSize(350, 100);
        button.setLocation(455, 450);
        button.setEnabled(true);
        button.addActionListener(new Actions());

        window.add(panel);
        panel.add(label);
        window.validate();
        panel.add(button);

        window.setVisible(true);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }
}

View 2:

package com.SimplyGeometry.src.windows;

import java.awt.Dimension;

import javax.swing.*;

public class SelectWindow {

    public static JFrame window;

    public SelectWindow(/*int WIDTH, int HEIGHT, String title*/) {
        window = new JFrame("SimplyGeometry");
        window.setPreferredSize(new Dimension(1320, 840));
        window.setMaximumSize(new Dimension(1320, 840));
        window.setMinimumSize(new Dimension(1320, 840));
        window.setLocationRelativeTo(null);
        window.setLayout(null);

        window.setVisible(true);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}

actionListener 类:

package Actions;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import com.SimplyGeometry.src.windows.SelectWindow;
import com.SimplyGeometry.src.windows.StartWindow;

public class Actions implements ActionListener {

    public Actions() {
        SelectWindow window = new SelectWindow();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }

}

最佳答案

发生这种情况是因为以下行:

public StartWindow(
    ...
    button.addActionListener(new Actions());
    ...
}

Actions的构造函数中,正在创建SelectWindow。因此,在您创建 StartWindow 后,它就会出现在屏幕上。

public Actions() {
    SelectWindow window = new SelectWindow();
}

要解决此问题,请在 actionPerformed 中创建 SelectWindow

public class Actions implements ActionListener {

    public Actions() {
        //SelectWindow window = new SelectWindow();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        SelectWindow window = new SelectWindow();
    }

}

关于java - 在 sfml 中打印 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36456772/

相关文章:

java - 获取 ArrayList 中具有最高值的特定元素

java - 量产JTables

Python: Mechanize 错误仅在从文本编辑器运行代码时显示,但在直接从空闲 shell 运行时工作正常

python - 从 windows 和 linux 中的子文件夹导入函数

java - JPA 一对多关系中外键分配给 NULL

java - 通过 REST 服务或 CLI 脚本连接到 Openshift 是最佳选择吗?

java - 如何使用数据库中的数据填充 ListView

java - JLabel 不在全屏居中

Java GroupLayout 实现

Python3 使用 exec 动态导入 - 为什么 'as' 不被执行?