用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

怎么用bootstrap做一个后台管理界面

我想用javaswing 做出这样的界面,要怎么做

怎么把一个Winform程序界面做的很漂亮

用netbeans将布局、组件之类的拖在框架中,也写好界面了,请问怎么添加背景图片呢?急~~~谢谢!

技术交流的重要性