用SWT的布局弄个查询界面怎么做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SWT的布局弄个查询界面怎么做相关的知识,希望对你有一定的参考价值。
大体界面差不多就是最上面有一个文本框和一个按钮,
中间是一个表格,下面是几个按钮。
因为我想用布局实现,不想用绝对坐标实现,不然最大化不好看。
帮帮想想大体要怎么弄,哪部分改用哪些布局,要有更好的布局界面也行。
大体样子跟图差不多
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.*;
import org.eclipse.swt.custom.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
//0: this使用FormLayout
//1: 输入框和查询按钮放入一个Composite1,该Composite使用GridLayout
//2: 查询条件放入一个Composite2,位置相对于Composite1,该Composite使用RowLayout
//3: 将TableViewer放入一个Composite3中,位置相对于Composite2;使用GridLayout
//4: 最后一排按钮放入一个Composite4,该Composite使用GridLayout
public class CompTemplate extends Composite
public CompTemplate(Composite parent, int style)
super(parent, style);
// 0:
FormLayout fl = new FormLayout();
fl.spacing = 10;
this.setLayout(fl);
// 1.1: 建立Composite
Composite txtComp = new Composite(this, SWT.NONE);
RowLayout txtRl = new RowLayout();
txtRl.spacing = 30;
txtComp.setLayout(txtRl);
FormData txtFd = new FormData();
txtFd.left = new FormAttachment(36);
txtFd.top = new FormAttachment(10);
txtFd.right = new FormAttachment(100);
txtFd.bottom = new FormAttachment(20);
txtComp.setLayoutData(txtFd);
// 1.2: 创建CCombo和Button
CCombo combo = new CCombo(txtComp, SWT.BORDER | SWT.SINGLE);
RowData comboRd = new RowData(240, 25);
combo.setLayoutData(comboRd);
Button btnQuery = new Button(txtComp, SWT.PUSH);
btnQuery.setText("查询");
RowData btnRd = new RowData(60, 25);
btnQuery.setLayoutData(btnRd);
// TODO 事件
// 2.1: 建立Composite
Composite condComp = new Composite(this, SWT.NONE);
RowLayout condRl = new RowLayout();
condRl.marginLeft = 20;
condRl.spacing = 50;
condComp.setLayout(condRl);
FormData condFd = new FormData();
condFd.left = new FormAttachment(36);
condFd.top = new FormAttachment(txtComp, -10);
condFd.right = new FormAttachment(100);
condFd.bottom = new FormAttachment(30);
condComp.setLayoutData(condFd);
// 2.2: 建立Radio
Button condBtn1 = new Button(condComp, SWT.RADIO);
condBtn1.setText("dd");// TODO
condBtn1.setSelection(true);
Button condBtn2 = new Button(condComp, SWT.RADIO);
condBtn2.setText("方法");// TODO
Button condBtn3 = new Button(condComp, SWT.RADIO);
condBtn3.setText("FF");// TODO
// 3.1: 建立Composite
Composite viewComp = new Composite(this, SWT.NONE);
GridLayout viewGl = new GridLayout();
viewComp.setLayout(viewGl);
FormData viewFd = new FormData();
viewFd.left = new FormAttachment(10);
viewFd.top = new FormAttachment(condComp, -15);
viewFd.right = new FormAttachment(90);
viewFd.bottom = new FormAttachment(80);
viewComp.setLayoutData(viewFd);
// 3.1: 建立TableViewer
TableViewer viewer = new TableViewer(viewComp, SWT.BORDER);
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(33, false));
layout.addColumnData(new ColumnWeightData(33, false));
layout.addColumnData(new ColumnWeightData(33, false));
viewer.getTable().setLayout(layout);
viewer.getTable().setLinesVisible(true);
viewer.getTable().setHeaderVisible(true);
viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
TableColumn column1 = new TableColumn(viewer.getTable(), SWT.CENTER);
column1.setText("ff");
TableColumn column2 = new TableColumn(viewer.getTable(), SWT.CENTER);
column2.setText("ff");
TableColumn column3 = new TableColumn(viewer.getTable(), SWT.CENTER);
column3.setText("ff");
//4.1: 建立Composite
Composite btnComp = new Composite(this, SWT.NONE);
RowLayout btnRl = new RowLayout();
btnRl.justify = true;
btnComp.setLayout(btnRl);
FormData btnFd = new FormData();
btnFd.left = new FormAttachment(10);
btnFd.top = new FormAttachment(viewComp, 10);
btnFd.right = new FormAttachment(90);
btnFd.bottom = new FormAttachment(100);
btnComp.setLayoutData(btnFd);
//4.2: 创建Button
Button btn1 = new Button(btnComp, SWT.PUSH);
btn1.setText("ddd");
Button btn2 = new Button(btnComp, SWT.PUSH);
btn2.setText("ddd");
Button btn3 = new Button(btnComp, SWT.PUSH);
btn3.setText("ddd");
Button btn4 = new Button(btnComp, SWT.PUSH);
btn4.setText("ddd");
RowData btnsRd = new RowData(80,30);
btn1.setLayoutData(btnsRd);
btn2.setLayoutData(btnsRd);
btn3.setLayoutData(btnsRd);
btn4.setLayoutData(btnsRd);
public static void main(String[] args)
Display d = Display.getDefault();
Shell s = new Shell(d);
s.setLayout(new FillLayout());
new CompTemplate(s, SWT.NONE);
s.open();
while (!s.isDisposed())
if (!d.readAndDispatch())
d.sleep();
d.dispose();
大体上就是这样,有些小问题,楼主自己解决下吧。
参考技术A //0: this使用FormLayout//1: 输入框和查询按钮放入一个Composite1,该Composite使用GridLayout
//2: 查询条件放入一个Composite2,位置相对于Composite1,该Composite使用RowLayout
//3: 将TableViewer放入一个Composite3中,位置相对于Composite2;使用GridLayout
//4: 最后一排按钮放入一个Composite4,该Composite使用GridLayout本回答被提问者采纳
怎么用bootstrap做一个后台管理界面
参考技术A 可以做成同一个系统,开发成为独立系统。我曾经做过一个网站后台管理系统,主要是CMS内容管理和组织架构权限管理,就是独立出来分别管理两个网站的。当然讲网站和后台管理系统放在一起的话部署成本要小一些。 参考技术B 1、你得先制作界面布局图(效果图);2、根据效果图进行切图生成html文件;
3、将html文件嵌套在bootstrap中;
说明:bootstrap是自适应框架,请仔细查看结构说明。 参考技术C
参考bootstrap教程
http://www.runoob.com/bootstrap/bootstrap-tutorial.html 参考技术D 你熟悉bootstrap就自己明白了,可以去下载一个用bootstrap做的后台自己研究下人家怎么写就清楚了。 第5个回答 2016-09-03 方法/步骤到bootstrap官方网站下载,对于我们开发者来说,直接下载编译和压缩后的CSS、JavaScript文件,另外还包含字体文件,但是不包含文档和源码文件。打开解压包之后可以发现包含三个文件夹 css、fonts、js。这是最基本的Bootstrap组织形式:未压缩版的文件可以在任意web项目中直接使用。我们提供了压缩(bootstrap.min.*)与未压缩 (bootstrap.*)的CSS和JS文件。字体图标文件来自于Glyphicons
所有Bootstrap插件都依赖jQuery。而且在正式的项目当中我们推荐使用压缩之后的版本,因为它的体积很小,到官网下载jQuery支持,如图:
将下载后的就jQuery放到bootstrap中的js目录下,如图:
在bootstrap的根目录下新建一个demo.html文件,(注意,必须在根目录下面新建,因为后面的步骤中要将bootstrap框架中的css和js文件链接到创建的demo中)
编辑demo.html文件,添加对bootstrap框架中css和js的引用,内容如下,图片有注释说明,这样,我们就基本上建立了对bootstrap框架的基本使用架构
源码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- viewport的<meta>标签,这个标签可以修改在大部分的移动设备上面的显示,为了确保适当的绘制和触屏缩放。-->
<title>无标题文档</title>
<!--样式文件引用-->
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]
IE9以下的浏览器并不支持这些标签,也不能为这些标签进行添加样式。那么修复这个问题我们需要链接引用的文件
意思就是说如果用户IE浏览器的版本小于IE9,那么就会加载这两个js文件库,现在就可以使用这些新的标签,并且可以在这些标签上添加样式了
-->
</head>
<body>
<!--JavaScript插件都是依赖与jQuery库-->
<script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
</body>
</html>
另外,bootstrap官方提供了链接服务,永久免费,即使你不下载bootstrap框架文件到本地,也可以直接在html中使用,使用下面这段代码:
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
以上是关于用SWT的布局弄个查询界面怎么做的主要内容,如果未能解决你的问题,请参考以下文章
python tkinter怎么让顶层界面有scrollbar