`

单选圆形框的应用;日期文本框的应用;弹出确认文本框

 
阅读更多



 class1:定义单选按钮的内容

public enum  TradeOperationEnum {
  BUY("买入"),
  SALE("卖出");
  String displayName;
  TradeOperationEnum(String displayName) {
    this.displayName = displayName;
  }
  public String getDisplayName() {
    return this.displayName;
  }
}

 

class2:定义单选按钮

import com.my.stock.view.trade.vo.TradeOperationEnum;
import org.vaadin.viritin.fields.EnumSelect;

public class TradeInformationForm extends AbstractForm<TradeInformationVO> {
	private static final long serialVersionUID = -5238090169742945624L;
	MTextField name = new MTextField("产品名称");
	MDateField tradeDate = new MDateField("交易日期");
	MTextField holding = new MTextField("持有量(张)");
	MTextField price = new MTextField("现价(元)");
	MTextField amount = new MTextField("数量(张)");
        EnumSelect<TradeOperationEnum> operation = new EnumSelect<TradeOperationEnum>("操作").withSelectType(OptionGroup.class);

	@PostConstruct
	void init() {
	}

	public void configure() {
		name.setReadOnly(false);
		tradeDate.setValue(new Date());
		tradeDate.setRangeEnd(DateTime.now().toDate());
	}

	public void setAmount(String amount) {
		amount.setReadOnly(false);
		amount.setValue(amount);
		amount.setReadOnly(true);
        }
	@Override
	protected Component createContent() {
		operation.setCaptionGenerator(o -> o.getDisplayName());
		tradeDate.setValue(new Date());
		getSaveButton().setCaption("添加交易记录");
		getResetButton().setCaption("重填");
		configure();
		FormLayout formLayout = new MFormLayout(bondCode, bondName,
				productName, holding, tradeDate, price, operation, amount,
				getToolbar());
		return formLayout;
	}

	public MTextField getBondCode() {
		return bondCode;
	}

	public MTextField getBondName() {
		return bondName;
	}
} 

 

class3:

public class TradeView extends TradeLayout implements View {
    TradeInformationForm tradeInformationForm = new TradeInformationForm();
	@PostConstruct
	void init() {
		configTradeForm();
	}
	void configTradeForm() {
		TradeInformationVO tradeInformationVO = new TradeInformationVO();
		tradeInformationForm.setEntity(tradeInformationVO);
		tradeInformationForm.configure();
		tradeInformationForm.operation.setOptions(TradeOperationEnum.BUY,TradeOperationEnum.SALE);
		tradeInformationForm.getSaveButton().setEnabled(false);
		tradeInformationForm.setVisible(true);//false
		tradeInformationForm.setSavedHandler(this::saveTradeRecord);
		editPanel.setContent(tradeInformationForm);
	}
	void saveTradeRecord(TradeInformationVO tradeInformationVO) {
		if (tradeInformationVO.getName() ==null) {
			Notification.show("正确设置买卖信息!", Type.ERROR_MESSAGE);
			return;
		}
		if (tradeInformationVO.getAmount() < 1) {
			Notification.show("设置交易数量 !", Type.ERROR_MESSAGE);
			return;
		}
		if (tradeInformationVO.getOperation() == TradeOperationEnum.SALE)
			if (tradeInformationVO.getAmount() > tradeInformationVO
					.getHolding()) {
				Notification.show("卖出数额超限 !", Type.ERROR_MESSAGE);
				return;
		String mess = getConfirmMess(tradeInformationVO);

		ConfirmDialog.show(this.getUI(), "添加交易确认: ", mess, "确认", "取消",
				new ConfirmDialog.Listener() {
					private static final long serialVersionUID = 593093678633114533L;

					public void onClose(ConfirmDialog dialog) {
						if (dialog.isConfirmed()) {
							addTradeRecord(tradeInformationVO);
							logTrade(tradeInformationVO);
						} else {
							// tradeInformationForm.getSaveButton().setEnabled(true);
						}
					}
				});
	}
	private void addTradeRecord(TradeInformationVO tradeInformationVO) {			               if (tradeInformationVO.getOperation() == TradeOperationEnum.BUY) {
				amount = amount + tradeInformationVO.getAmount();
			} else
				amount = amount - tradeInformationVO.getAmount();
        }
}

 class4:

import com.vaadin.annotations.DesignRoot;

@DesignRoot
public class TradeLayout extends VerticalLayout {
	private static final long serialVersionUID = -2659591538746780121L;
	Panel editPanel;
	public TradeLayout() {
		Design.read(this);
		splitPanel.setSplitPosition(60, Unit.PERCENTAGE);
	}
}

 class5:

import lombok.Data;

/**
 * Created by shawz on 12/26/2015.
 */
@Data
public class TradeInformationVO {
  private String name;
  private long holding;
  private double price;
  @NotNull
  private long amount;
  @NotNull(message = "请选择交易日期")
  private Date tradeDate;
  private TradeOperationEnum operation;
}

 

  • 大小: 2.9 KB
分享到:
评论

相关推荐

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    vb经典题目解答(编程题、选择题、填空题)

    当选择特定菜单项时,应打开Form2窗体,其中包含图形框和鼠标右键弹出菜单,用于执行绘图操作。此题重点在于菜单的动态生成、列表数据的生成与处理,以及基于参数方程的图形绘制技术。 ### 关键知识点总结 1. **...

    百例课堂.DELPHI.7编程入门篇

    实例9 设计可以弹出系统时间对话框的程序 实例10 设计可显示圆形的程序 实例11 设计具有折叠功能的树状列表 实例12 制作可以浏览照片的程序 实例13 设计下拉列表 实例14 设计添加列表项程序 实例15 制作含有位图的...

    二级VB模拟试题.pdf

    1. 在VB(Visual Basic)中,若要弹出一个消息框,可以使用`MsgBox`函数来实现。例如,`MsgBox("你好,世界!")`会在屏幕上显示一个包含“你好,世界!”消息的对话框。 2. 设计弹出式菜单时,首先要通过`Menu`控件...

    Delphi XE主要控件列表.docx

    Delphi XE是一款强大的Windows应用程序开发工具,以其丰富的控件库和高效的编译器而闻名。在描述中未提供具体信息,但通过标题和标签,我们可以深入探讨一下Delphi XE中的主要控件及其用途。 1. **标准控件...

    Android常用控件

    10. **对话框(Dialog)**:弹出式界面,可以用来显示警告、询问或提供额外信息。包括警告对话框、单选对话框、多选对话框等。 11. **浮动按钮(FloatingActionButton)**:设计指南推荐的圆形按钮,通常用作主要操作的...

    Python-Tkinter_jb51 3.rar

    6. **菜单栏和对话框**:Tkinter也支持创建菜单栏和弹出对话框,如`Menu`类用于创建菜单,`filedialog`模块提供了打开、保存文件等对话框。 7. **主题和样式**:通过Tkinter的`ttk`模块(Themed Tkinter),可以...

    Android 一个Demo搞定30个控件-IT计算机-毕业设计.zip

    15. **对话框(Dialog)**:在当前界面之上弹出的小窗口,用于提示或获取用户输入。 16. **菜单(Menu)**:在应用的顶部或底部显示的操作选项。 17. **浮动操作按钮(FloatingActionButton)**:圆形按钮,常用于主要操作...

    软件界面设计工具_3款合集

    可使用标准Windows元素创建图形用户界面(GUI)屏幕,包括框架窗口、会话、菜单、工具栏、标签、按钮、复选框、单选按钮、滚动条、滑动调节框、微调框、组合框、树列表、列表框、编辑框以及静态文本等。 通过现有...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    树形菜单jquery.popup支持文本框弹出层选择项插件 47.通用性强的jquery带箭头跟随的垂直菜单组(jquery vmenu)插件下载 48.推荐jQuery黑色多级横向菜单导航(带动画效果) 49.学习jQuery简单伸缩菜单代码实例 ...

    基础《网页制作与网站建设》在线作业.pdf

    11. **信息框**:添加信息框(弹出信息)通常通过行为面板中的JavaScript代码实现。 12. **表格**:表格在网页布局中起重要作用,可以嵌套、添加链接,通过CSS样式修饰,也可辅助布局。 13. **事件**:要实现打开...

    Perl_Tk_Pocket_Reference.pdf

    Menu小部件用于创建下拉菜单和弹出菜单,是实现菜单栏和其他导航功能的关键组件。它支持子菜单的嵌套,以及菜单项的启用/禁用状态控制。 ### 8. Text小部件 Text小部件是一个多行文本编辑器,能够处理大量的文本...

Global site tag (gtag.js) - Google Analytics