/**
* 对话框
*
* @time 11:09:20 AM
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Test_Dialog extends Frame {
private static final long serialVersionUID = 1L;
TextField rows = new TextField("3");
TextField cols = new TextField("3");
/**
* 构造器
*
* @param owner
*/
public Test_Dialog() {
setTitle("Dialog Test");
// 实例化面板
Panel panel = new Panel();
panel.setLayout(new GridLayout(2, 2));
panel.add(new Label("Row", Label.CENTER));
panel.add(rows);
panel.add(new Label("Columns", Label.CENTER));
panel.add(cols);
// 将面板添加到帧窗口
add("North", panel);
add("South", new Button("GO"));
}
public boolean handleEvent(Event event) {
if (event.id == Event.WINDOW_DESTROY) {
System.exit(0);
} else {
return super.handleEvent(event);
}
return true;
}
public boolean action(Event event, Object object) {
if (object.equals("GO")) {
// 弹绘制差图对话框
Dialog dialog = new TestDialog(this, Integer.parseInt(rows.getText()), Integer.parseInt(cols.getText()));
dialog.show();
} else {
return super.action(event, object);
}
return true;
}
public static void main(String[] args) {
Test_Dialog dialog = new Test_Dialog();
dialog.resize(200, 100);
dialog.show();
}
}
/**
* 自定义对话框
*/
class TestDialog extends Dialog {
private static final long serialVersionUID = 1L;
static final int BLANK = 0;
static final int XX = 1;
static final int OO = 2;
int turn = XX;
public TestDialog(Frame frame, int w, int h) {
super(frame, "", false);
setLayout(new GridLayout(w, h));
// 添加自定义按钮
for (int i = 0; i < w * h; i++) {
add(new TestButton(this));
resize(w * 50, h * 50);
}
}
@Override
public boolean handleEvent(Event evt) {
if (evt.id == Event.WINDOW_DESTROY) {
dispose();
} else {
return super.handleEvent(evt);
}
return true;
}
}
/**
* 自定义按钮
*/
class TestButton extends Canvas {
private static final long serialVersionUID = 1L;
int state = TestDialog.BLANK;
TestDialog parentDialog;
/**
* 构造器
*/
TestButton(TestDialog parent) {
this.parentDialog = parent;
}
@Override
public void paint(Graphics g) {
int x1 = 0;
int y1 = 0;
int x2 = size().width - 1;
int y2 = size().height - 1;
// 画矩形
g.drawRect(x1, y1, x2, y2);
x1 = x2 / 4;
y1 = y2 / 4;
int wide = x2 / 2;
int high = y2 / 2;
// 画差
if (state == TestDialog.XX) {
g.drawLine(x1, y1, x1 + wide, y1 + high);
g.drawLine(x1, y1 + high, x1 + wide, y1);
}
// 画圈
if (state == TestDialog.OO) {
g.drawOval(x1, y1, x1 + wide / 2, y1 + high / 2);
}
}
// 按下画圈或是画差
@Override
public boolean mouseDown(Event evt, int x, int y) {
if (state == TestDialog.BLANK) {
//
state = parentDialog.turn;
parentDialog.turn = (parentDialog.turn == TestDialog.XX ? TestDialog.OO : TestDialog.XX);
} else {
state = (state == TestDialog.XX ? TestDialog.OO : TestDialog.XX);
}
// 重绘
repaint();
return true;
}
}
分享到:
相关推荐
通过阅读和理解这个项目,你可以学习如何将自定义对话框整合到实际的Swing应用中,以及如何处理用户的输入和对话框关闭事件。 六、对话框的外观定制 除了基本的组件外,还可以通过调整背景色、边框、字体等属性,...
基于MFC的对话框Dialog的OpenGL程序框架 基于MFC的对话框Dialog的OpenGL程序框架 基于MFC的对话框Dialog的OpenGL程序框架 基于MFC的对话框Dialog的OpenGL程序框架 基于MFC的对话框Dialog的OpenGL程序框架
对话框 Dialog对话框是一种临时窗口,通常在不想中断整体任务流程,但又需要为用户展示信息或获得用户响应时,在页面中打开一个对话框承载相应的信息及操作。对话框
在Windows编程领域,对话框(Dialog Box)是用户界面中的一种常见元素,它提供了一种与用户交互的方式,用于输入、选择或显示信息。在C++编程中,尤其是在MFC(Microsoft Foundation Classes)库中,我们可以使用`...
在VC++编程中,对话框(Dialog)是一种用户界面元素,用于与用户进行交互,通常包含文本输入框、按钮、复选框等控件。在Windows应用程序开发中,使用对话框可以让用户输入信息或者选择一些设置。下面我们将详细介绍...
在给定的“Android之对话框Dialog(博客源码)”资源中,我们可以学习到如何在Android应用中实现三种不同类型的对话框:时间弹框、自定义弹框以及等待弹框。 首先,我们来详细了解一下时间弹框。时间弹框通常用于让...
在Android开发中,对话框(Dialog)是一种非常重要的UI组件,它用于向用户展示临时信息或需要用户进行交互的情况。本篇文章将详细讲解如何使用`AlertDialog`创建各种类型的对话框,包括简单列表对话框、单选列表...
在Android开发中,自定义对话框(Dialog)是提升用户体验的重要手段之一,它允许开发者根据应用的风格和需求创建独特且吸引人的交互界面。本文将深入探讨如何在Android中实现自定义对话框,并进行界面美化。 首先,...
对话框(Dialog)是Android UI设计中的重要元素,用于在不离开当前界面的情况下显示临时信息或获取用户输入。Yancy Dialog和高级Dialog则是对话框的一种扩展,它们提供了更多的定制化选项和功能。 在描述中提到的...
本文将深入探讨如何创建一个具有选择功能的对话框(Dialog),包括使用AlertDialog及其Builder类。 ### 1. AlertDialog简介 AlertDialog是Android SDK提供的一种内置对话框类型,它提供了多种样式和行为,可以用于...
`Demo_Dialog`很可能是包含上述功能的示例代码,开发者可以通过查看和运行这个示例来学习和理解如何在实际项目中应用这些动画和3D效果。示例通常会包含如何初始化Dialog,如何设置动画,以及如何在Dialog生命周期中...
创建自定义对话框dialog,弹出模式窗口 用于创建自定义对话框的轻量级(约 4.5 KB)代码库。四种对话框可用: alerts(出错), warnings(警告), prompts(提示), success(成功)。利用一个简单的函数,你可以自定义对话框...
10-GUI(对话框Dialog).avi
在Android开发中,自定义对话框(Dialog)是一种常见的需求,尤其当系统默认的样式无法满足设计需求时。本文将详细介绍如何实现一个自定义对话框,包括视图的设计和参数的传递。 首先,我们来看一下自定义对话框的...
jQuery Dialog 是一个强大的弹出层插件,常用于创建各种对话框、提示窗口或模态框,极大地丰富了网页的交互体验。这个插件是基于 jQuery 库构建的,因此在使用前确保已经引入了 jQuery。下面将详细介绍如何使用 ...
"酷炫自定义对话框Dialog_确认_取消_进度等"这个主题涵盖了Android应用中常见且实用的几种对话框类型,如确认对话框、取消对话框以及带有进度条的对话框。这些对话框通常用于用户交互,如提示用户进行操作确认、显示...
android原生的dialog太生硬了,看到开源的sweet-alert-dialog 对话框感觉不错 ,我根据个人的需要基于sweet-alert-dialog做了一些修改 自我感觉挺好看 大家需要的话 可以下下来研究下
在Android开发中,Dialog是一种非常重要的用户界面组件,它用于在主界面之上...在DialogProject压缩包中,包含了上述所有类型的对话框示例代码,可以直接运行和学习。通过实践,你将更好地掌握Android Dialog的使用。
在iOS开发中,由于苹果的设计哲学,iPhone原生控件中并没有像Android那样直接提供对话框(Dialog)的组件。然而,开发者可以通过自定义视图或者使用特定的库来实现类似的功能。本教程将深入讲解如何在iPhone应用中...
本资源“多样式的对话框Dialog生成功能”提供了丰富的对话框实现方式,适合初学者学习和使用。以下是关于Android Dialog及其生成方式的一些详细知识点: 1. **基础Dialog** - Android中的`AlertDialog`是最常见的...