javaswt,javaswt菜单点击

本文目录一览:

java有了Swing,为什么还要使用SWT呢?

由于在不同的操作系统下,提供的控件是不一样的,AWT采用最小公约数的办法,只提供所有操作系统都有的控件。但后来SUN改变了做法,在Swing里除了JFrame,JWinodows,JDialog(记不太清了,好像是这几个)是调用本地操作系统的控件,其它JPanel,JButton之类的都是绘出来的,所以Swing在所有平台看起来都是一样的外观。这样保持了外观一致性,但牺牲了性能。 IBM更喜欢AWT的实现机制,做出了SWT,SWT采用的是最大公倍数的做法。SWT大部分都是用的本地操作系统的控件,一些在windows里有的控件可能在linux下没有,对这种控件才采用自己绘制的方式。SWT采用类似JAVA虚拟机的方式,在不同的平台,有不同的开发包,我们写的java代码是一样的,但不同平台下看起来外观是不一样的,但性能提升很高,据说和C++做的界面速度差不多:) 也许你会问哪种更好,引一名话:this is equivalent to asking whether a harmmer is better than a screw driver,of course ,a hammer wieldded with sufficient force can probably drive a screw into a wall ,and the butt of a screw can be used in a pinch to knock in a nail. However, a good carpenter keeps both harmer and screw drivers in her tool box and will use the tool that is appropriate for the job at hand. 个人感觉以前java做界面完全没有优势,从外观到性能(我很喜欢Swing的look and feel,可以改变风格),SWT的出现改变了性能上的缺点,再加上JFace,及Eclipse的RCP,我还是倾向于用SWT。

在java中用swt弹出提示框

JOptionPane.showMessageDialog(null, “信息消息”,“提示”, JOptionPane.INFORMATION_MESSAGE);

后面JOptionPane.INFORMATION_MESSAGE 可以换成不同的值,代表不同的消息框类型,包括提示、警告、错误!

–希望能帮到你!!

如何把java SWT程序中的匿名内部类改写成命名内部类?

//请看最后一个private class ,其实命名内部类跟普通的java程序一样写,只要知道你自己的监听器要继承于哪个类,实现什么方法

public class Level4Class extends ViewPart {

private TableViewer tv;

public static int num=0;

private ListNavigatorEntry files;

public int getNum() {

return num;

}

public ListNavigatorEntry getFiles() {

return files;

}

public void setFiles(ListNavigatorEntry files) {

this.files = files;

}

public void setNum(int num) {

this.num = num;

}

@Override

public void createPartControl(Composite parent) {

Composite topComp = new Composite(parent, SWT.NONE);

topComp.setLayout(new FillLayout());

createTableViewer(topComp);// 自定义方法:创建一个TableViewer表格

tv.setContentProvider(new SmsContentProvider());// 内容器

tv.setLabelProvider(new TableViewerLabelProvider());// 标签器

tv.addDoubleClickListener(new MyDoubleClickListener());

files = getCourse();

tv.setInput(files);

}

@Override

public void setInitializationData(IConfigurationElement cfig, String propertyName, Object data) {

// TODO 自动生成方法存根

super.setInitializationData(cfig, propertyName, getCourse());

}

// 创建表格

private void createTableViewer(Composite parent) {

tv = new TableViewer(parent, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);

Table table = tv.getTable();

table.setHeaderVisible(true); // 显示表头

table.setLinesVisible(true); // 显示表格线

table.setLayout(new TableLayout());// 专用于表格的布局

// 建立TableViewer中的列,createColumn是自定义方法

createColumn(10, “编号”);

createColumn(70, “域名”);

createColumn(30, “截止日期”);

createColumn(30, “版本状态”);

}

@Override

public void setFocus() {

// TODO Auto-generated method stub

}

// 创建表格的列

private TableColumn createColumn(int weight, String name) {

Table table = tv.getTable();

TableLayout layout = (TableLayout) table.getLayout();

layout.addColumnData(new ColumnWeightData(weight));

TableColumn col = new TableColumn(table, SWT.NONE);

if (name.equals(“编号”)){

col.addSelectionListener(new SelectionAdapter() {

boolean asc = true; // 记录上一次的排序方式,默认为升序

public void widgetSelected(SelectionEvent e) {

Level4Class.num=0;

// asc=true则ID的升序排序器,否则用降序

tv.setSorter(asc ? MySorter.ID_ASC : MySorter.ID_DESC);

asc = !asc;// 得到下一次排序方式

}

});

}else if(name.equals(“截止日期”)){

col.addSelectionListener(new SelectionAdapter() {

boolean asc = true; // 记录上一次的排序方式,默认为升序

public void widgetSelected(SelectionEvent e) {

Level4Class.num=0;

// asc=true则ID的升序排序器,否则用降序

tv.setSorter(asc ? MySorter.TIME_ASC : MySorter.TIME_DESC);

asc = !asc;// 得到下一次排序方式

}

});

}else if(name.equals(“版本状态”)){

col.addSelectionListener(new SelectionAdapter() {

boolean asc = true; // 记录上一次的排序方式,默认为升序

public void widgetSelected(SelectionEvent e) {

Level4Class.num=0;

// asc=true则ID的升序排序器,否则用降序

tv.setSorter(asc ? MySorter.STATE_ASC : MySorter.STATE_DESC);

asc = !asc;// 得到下一次排序方式

}

});

}

col.setText(name);

return col;

}

// 标签器

private static final class TableViewerLabelProvider extends TableLabelProviderAdapter implements ITableColorProvider{

public String getColumnText(Object element, int col) {

// String result = “”;

NavigatorEntry o = (NavigatorEntry) element;

switch (col) {

case 0:

return String.valueOf(++num);

case 1:

return o.getDomain();

case 2:

String time = o.getTime();

if (null != time !time.equals(“”)time.length()=10){

time = time.substring(0, 10);

}else if(null != time !time.equals(“”)time.length()10){

time =time;

}else{

time =””;

}

return time;

case 3:

return o.getLevel().getMeg();

default:

return “”;

}

}

public Color getBackground(Object element, int columnIndex) {

// NavigatorEntry o = (NavigatorEntry) element;

// if (o.getLevel().getMeg().equals(IAppConstants.LEVEL_2)){

// return Display.getDefault().getSystemColor(SWT.COLOR_GRAY);

// }else if(o.getLevel().getMeg().equals(IAppConstants.LEVEL_3)){

// return Display.getDefault().getSystemColor(SWT.COLOR_DARK_GRAY);

// }else if(o.getLevel().getMeg().equals(IAppConstants.LEVEL_1)){

// return Display.getDefault().getSystemColor(SWT.COLOR_WHITE);

// }else if(o.getLevel().getMeg().equals(IAppConstants.LEVEL_4)){

// return Display.getDefault().getSystemColor(SWT.COLOR_RED);

// }else if (o.getLevel().getMeg().equals(IAppConstants.LEVEL_5)) {

// return Display.getDefault().getSystemColor(SWT.COLOR_YELLOW);

// }

return null;

}

public Color getForeground(Object element, int columnIndex) {

NavigatorEntry o = (NavigatorEntry) element;

if (true){

return Display.getDefault().getSystemColor(SWT.COLOR_RED);

}

return null;

}

}

/**

* 得到所有正常的版本数据

* @return

*/

private List getCourse(){

ListNavigatorEntry list = new ArrayListNavigatorEntry();

Session session = HibernateSessionFactory.getSession(“hibernate_mysql.cfg.xml”);

Query query = session.getNamedQuery(“org.b2c.framework.sys.Version.getNotNormal”);

for (Iterator iter = query.iterate(); iter.hasNext();) {

Version version = (Version)iter.next();

if (null != version){

NavigatorEntry o = new NavigatorEntry();

o.setDomain(version.getDomain());

o.setId(version.getId());

Level l = new Level();

l.setLevel(version.getState());

switch(version.getState()){

case 0:

l.setMeg(“未注册”);

break;

case 4:

l.setMeg(“已过期”);

break;

}

o.setLevel(l);

o.setPublickey(version.getPublickey());

o.setPrivatekey(version.getPrivatekey());

o.setCiphertext(version.getCiphertext());

o.setEnshrined(version.getEnshrined());

if (null != version.getVtime()){

o.setTime(version.getVtime().toString().substring(0,10));

}else{

o.setTime(“—–“);

}

list.add(o);

}

}

HibernateSessionFactory.closeSession();

return list;

}

public TableViewer getTv() {

return tv;

}

public void setTv(TableViewer tv) {

this.tv = tv;

}

private class MyDoubleClickListener implements IDoubleClickListener {

public void doubleClick(DoubleClickEvent event) {

IStructuredSelection sel = (IStructuredSelection) event.getSelection();

NavigatorEntry entry = (NavigatorEntry) sel.getFirstElement();

if(entry!=null){

IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();

IViewPart view1 = window.getActivePage().findView(“org.b2c.framework.ui.teachunitname”);

Text temp1 = ((TeachUnitName)view1).getLable1();

Text temp2 = ((TeachUnitName)view1).getLable2();

temp1.setText(entry.getPrivatekey());

temp2.setText(entry.getCiphertext());

}

}

}

}

java SWT 加载文件内容

楼主,你的代码好多错误。帮你改了部分,主要还是看“ //这里应该怎么写代码”下面的代码。java处理文件需要流的知识。我这里用的Scanner需要jdk1.5以上版本才能用。你先运行看看吧

package com.swtjface;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.util.Scanner;

import org.eclipse.swt.SWT;

import org.eclipse.swt.events.SelectionAdapter;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.FileDialog;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Text;

public class Test {

public static void main(String[] args) {

Display display = new Display();

final Shell shell = new Shell(display);

shell.setSize(500, 375);

final Button button = new Button(shell, SWT.PUSH);

button.setBounds(0, 0, 150, 35);

button.setText(“打开文件”);

final Text text = new Text(shell, SWT.BORDER|SWT.MULTI);

text.setBounds(0, 40, 500, 375);

button.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

// 这里应该怎么写代码

FileDialog dlg = new FileDialog(shell, SWT.OPEN);

dlg.setText(“选择一个TXT文件”);

dlg.setFilterExtensions(new String[] { “*.txt” });

dlg.setFilterNames(new String[] { “文本文件(*.txt)” });

String filePath = dlg.open();

System.out.println(filePath);

try {

Scanner in = new Scanner(new FileInputStream(new File(

filePath)));

while (in.hasNextLine()) {

text.append(in.nextLine() + “\r\n”);

}

} catch (FileNotFoundException e1) {

e1.printStackTrace();

}

}

});

shell.pack();

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/187579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-28 06:23
下一篇 2024-11-28 06:24

相关推荐

发表回复

登录后才能评论