- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始使用 WindowBuilder for Java 进行编程,但遇到了一个我似乎无法解决的非常烦人的问题。
问题是调试(System.out.println(answer);在第 133 行)在 YesOrNo 方法完成(第 131 行)完成之前执行。所以它比我的程序“超前”运行。
我的代码:
主.java
package me.fractional.main;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.JTextField;
public class main {
GUI go = new GUI();
Studio so = new Studio();
private JFrame frmFractionalc;
static JLabel logo = new JLabel("");
static JButton InputNext = new JButton("Continue");
static JLabel OutputMainText = new JLabel("");
static JTextField InputText = new JTextField();
static JButton InputYes = new JButton("Yes");
static JButton InputNo = new JButton("No");
public static int counter = 1;
public int answer = 2;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
main window = new main();
window.frmFractionalc.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public main() {
initialize();
intro();
}
public void Tutorial()
{
System.out.println("Tutorial");
OutputMainText.setVisible(true);
go.OutputMainText("Welcome to! Click Next Turn to Continue.");
}
public void MainMenu()
{
System.out.println("MainMenu");
}
private void initialize() {
frmFractionalc = new JFrame();
frmFractionalc.getContentPane().setBackground(new Color(176, 224, 230));
frmFractionalc.setBackground(new Color(0, 128, 128));
frmFractionalc.setTitle("Fractional © - GameDevStory");
frmFractionalc.setBounds(100, 100, 500, 300);
frmFractionalc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmFractionalc.getContentPane().setLayout(null);
logo.setHorizontalAlignment(SwingConstants.CENTER);
logo.setBounds(42, 44, 400, 150);
frmFractionalc.getContentPane().add(logo);
frmFractionalc.getContentPane().add(InputNext);
OutputMainText.setHorizontalAlignment(SwingConstants.CENTER);
OutputMainText.setBounds(10, 69, 464, 105);
frmFractionalc.getContentPane().add(OutputMainText);
frmFractionalc.getContentPane().add(InputText);
frmFractionalc.getContentPane().add(InputYes);
frmFractionalc.getContentPane().add(InputNo);
}
public void intro()
{
logo.setIcon(new ImageIcon(main.class.getResource("/me/fractional/main/logo.png")));
InputNext.setForeground(new Color(0, 0, 0));
InputNext.setBounds(200, 239, 89, 23);
InputNext.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
switch(counter)
{
case 1:
logo.setVisible(false);
go.OutputMainText("Welcome to GameDevStudio!");
counter = 2;
break;
case 2:
go.OutputMainText("Enter a name for your game studio below [10 characters max!]");
InputText.setBounds(162, 174, 154, 20);
InputText.setColumns(10);
InputText.setVisible(true);
counter = 3;
break;
case 3:
so.setName(InputText.getText());
if(so.getName().length() < 1 || so.getName() == null)
{
go.OutputMainText("Invalid name!");
InputText.setVisible(false);
counter = 2;
}
else
{
go.OutputMainText(so.getName() + ", that's a name I'd use!");
InputText.setVisible(false);
counter = 4;
}
break;
case 4:
InputNext.setVisible(false);
go.OutputMainText("Would you like to run the tutorial?");
answer = go.YesOrNo(1);
System.out.println(answer);
break;
}
}
});
}
图形用户界面.java
package me.fractional.main;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import me.fractional.main.main;
public class GUI {
static int returnvalue;
public void OutputMainText(String text)
{
main.OutputMainText.setText(text);
main.OutputMainText.setVisible(true);
}
public int YesOrNo(final int option)
{
main.InputYes.setBounds(112, 239, 89, 23);
main.InputNo.setBounds(287, 239, 89, 23);
main.InputYes.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
returnvalue = 1;
main.InputYes.setVisible(false);
main.InputNo.setVisible(false);
if(option == 1)
{
main.OutputMainText.setText("");
}
}
});
main.InputNo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
returnvalue = 0;
main.InputYes.setVisible(false);
main.InputNo.setVisible(false);
if(option == 1)
{
main.OutputMainText.setText("");
}
}
});
return returnvalue;
}
工作室.java
package me.fractional.main;
public class Studio {
String s_name;
public String getName()
{
return s_name;
}
public void setName(String name)
{
s_name = name;
}
}
最佳答案
Swing 是一个事件驱动的环境,这意味着您的程序会为用户生成输入,他们可以按照他们喜欢的顺序随意交互。
不是像控制台程序那样的线性输入过程,而是通过事件通知您用户交互。
这意味着您的 YesOrNo
方法将在调用任何 actionPerformed
方法之前返回。
如果您出于某种原因需要停止应用程序流程,您唯一的选择就是使用某种对话框。
看看How to use dialogs了解更多详情
Ps- 当你在那里时,你可能想看看 How to use layouts , 他们会让你的生活在长期的错误中变得更轻松
关于java - WindowBuilder 的恼人问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17003394/
我刚刚拿到了 JDK 和 Eclipse 经典版,我正在尝试找出用于安装的那个。 eclipse.org 提供的发行版和集成版有什么区别:http://www.eclipse.org/windowbu
是否可以在 WindowBuilder 中创建多行标签? 以下方法失败: 1) JLabel 带有 \n -s 2) 带文本的 JLabel,包装为 和maximuSize设置 3) JTextPan
我正在使用 Google 的 WindowBuilder 在 Eclipse 中为桌面 Java/SWT 应用程序创建 UI。我使用的是 Mac OS X。 我有这个简单的类(为了清楚起见,删除了导入
我正在尝试制作自己的 Java 组件,以便与 eclipse 中的 windowBuilder 一起使用。创建组件是比较容易的部分。问题是让 Eclipse 在创建组件时绘制该组件。我尝试过使用 SW
所以我有这个带有 WindowBuilder 的 Java 项目(带有 JInternalFrames 的 JDesktopPane),现在我要翻译整个程序。每次从 JDesktopPane 菜单打开
我最近开始使用 WindowBuilder for Java 进行编程,但遇到了一个我似乎无法解决的非常烦人的问题。 问题是调试(System.out.println(answer);在第 133 行
我正在使用 windowbuilder 为 Windows 制作一个带有 GUI 的 java 程序。我设置了组件的大小,使其与 3200x1800 的屏幕分辨率匹配。 构建程序后,我在屏幕分辨率为
我正在尝试制作一个全屏应用程序。我想知道如何使我在 JFrame 上添加的组件在每种分辨率下都占据屏幕的一部分。 设计选项卡模式: 当我在全屏上运行时,我得到这个: 如何让下面的界面调整为全屏? 最佳
我正在使用 WindowBuilder (Eclipse Juno 4.2) 为我的项目创建 GUI。在那个 GUI 中我需要使用日期选择器。我在网上搜索了一些日期选择器并找到了一些可以工作的库,但由
我正在 eclipse 的 windowbuilder 上工作一个项目。我的框架是全屏的,所以它不适合 WB 的设计页面。 JScrollPanes 也会出现同样的问题,在 Windowbuilder
我正在尝试使用 WindowsBuilder Pro 来开发 Swing UI。我正在使用 MiGLayout Manager。在设计 View 中开发时,当我创建一个新项目(JLabel、JText
WindowBuilder for Swing 将复选框创建为局部变量,将文本框创建为成员数据。这种不一致让我很烦恼。由于无论如何它们都会链接到顶层 JFrame 中,因此只要 JFrame 具有对它
目前我正在使用一个带有在 WindowBuilder 中设计的窗体的应用程序。该表单包含一个我想在 Clojure/seesaw 中使用的按钮。所以我的问题是:如何在 Clojure 中使用 Java
我有一个简单的 Eclipse Java 项目,它仅包含一个用 Eclipse 的 Window Builder 生成的类(Swing 类)。编码是在我的笔记本上完成的,并保存在云端,因此我可以从家里
我最近在 Eclipse 4.3 (Kepler) 上安装了 windowBuilder 工具。当我尝试在布局设计器上进行一些工作时,我的调色板窗口上不会出现任何组件。只有一些组件,如“布局 ->布局
我在 WindowBuilder for Eclipse 中创建了一个 Java 应用程序。我构建了一个菜单,并在其中一个菜单项上添加了 mouseclicked 事件。 JMenuItem mite
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在设计一个大表单,其中 Eclipse WindowBuilder plugin 。该类扩展了 JPanel 并使用 GridBagLayout 作为其 LayoutManager。 现在我的面板
我正在使用 windowbuilder 为我的应用程序构建 GUI。我已经为我的 GUI 创建了一个基于 SWT 的 shell 布局。我在 GUI 中有一个文本框。当用作 GUI 时,我想从文本框中
我正在尝试使用 3 行 3 列的 formlayout。中间的盒子设置为固定的宽度和固定的高度,其他盒子会增长。我认为这将使我的图像保持在中心,并且不会随着用户扩展框架而增长。 这是我正在做的事情,但
我是一名优秀的程序员,十分优秀!