導航:首頁 > 源碼編譯 > javaswt源碼

javaswt源碼

發布時間:2022-03-07 12:55:45

A. 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();
}
}

B. java swing 或者java SWT 如何播放視頻

那是因為你的可是大了,使用jmf時播放的不能太大,為320*240MJPEG PCM的大小

C. 用java SWT做迅雷項目時線程老卡死怎麼辦求具體實例

swt執行線程
SWT中的多線程機制和awt/swing中有些不同,這個大家應該都知道,不過還是要說下,Display對象中負責調用其他線程的方法有以下3種:● asyncExec(Runnable runnable):非同步啟動新的線程。所謂非同步就是,UI線程不會等待runnable對象執行結束後再繼續進行,就是說UI線程可以和runnable對象所在的線程同時運行。● syncExec(Runnable runnable):同步啟動新的線程。所謂同步就是,UI線程會等待runnable對象執行結束後才會繼續進行,當runnable對象是耗時大的線程時,盡量不要採用此種方式。另外,對於該種方式創建的線程可通過getSyncThread()方法獲得線程對象。● timerExec(int milliseconds,Runnable runnable):指定一段時間再啟動新的線程。用此方法創建的線程,將會在指定的時間後再啟動線程。當然用此方法創建的線程啟動後,與UI線程是非同步的。如果指定的時間為負數,將不會按時啟動線程。另外Display對象中,與UI線程相關的方法如下所示:● 獲得當前的UI線程對象的方法:getThread(),返回Thread對象。● 使UI線程處於休眠狀態:sleep()。● 喚醒UI線程:wake()。上面幾點都是書裡面的原話,不做闡述了.下面我要說的是一個寫法的問題,不能小瞧啊,後果很嚴重.如果有一個線程他要做的事需要很久比如5分鍾,像我這樣的初學swt的人一定是new了一個線程然後getDisplay().asyncExec(線程對象); 結果雖然執行成功,但是界面確處於掛起狀態(假死),直到執行結束,不過要說的是的確是非同步執行的,還是ui卻不知道為什麼停止用戶響應,原理暫時先不去理了,swt源碼太復雜了.這裡面就要引出一個問題為什麼不 像下面這么寫呢?Thread thread = new Thread(線程對象);
thread.start();
因為swt中非UI線程中調用窗口控制項如果不像上面三種寫法那樣寫的話,會拋org.eclipse.swt.SWTException: Invalid thread access這個異常在swt中程序啟動時只有一個主線程,在這里與awt和swing是不一樣的,它不允許其他線程訪問UI主線程中的部件,具讀過swt源碼的人說AsyncExec方法根本就沒有新啟動一個線程而是由Synchronizer調用其中的 run 方法而已.如果是這樣的話,也就難怪UI會掛起.解決這個問題的一個比較好的方法是如果要非同步執行的線程所做的工作非常少的話,就無所謂了,如果非同步線程需要執行很長時間的話,應該像下面這樣啟動線程Thread thread = new Thread(線程對象);
thread.start();在線程對象裡面所有調用到UI部件的地方classFinder.getGui().getDisplay().syncExec(new Runnable() {
public void run() {
//do run
}
});歷經幾個小時問題終於解決了這里做個總結吧.我對swt多線程的評價swt的syncExec ,asyncExec 以及timerExec都是偽線程執行方法,把它看成特別的Synchronizer調用就可以了,syncExec ,asyncExec 以及timerExec執行的線程要做的事只是改變UI部件的屬性而已執行時間不能太長.此外的其他操作仍然由傳統的線程來做.這里要特別注意,swt執行線程只用於在傳統線程中操作ui組建在這里要感謝內部類,否則一個復雜的swt線程不知道要寫多少個為swt部件服務的標准類

D. java swt開發發展前景

SWT 主要用來開發Eclipse 及其插件的。你去eclipse market瞧一瞧那些海量的插件,就知道前景有多大了,不過在國內,插件開發需求還是比較少的。

E. java swt 實現界面的伸縮。

加一個pack();

F. java swt問題,底分20,每答對一題加分20.........

awt還是swt?
swt是另一個UI庫,與swing不同,你現在用的是swing...

1 swing直接實現半透明不方便,因為無法獲得底層窗口的句柄,或者你得通過本地方法實現。另外有一種模擬半透明的方式,就是屏幕截圖進行背景繪制..
2 不知你問的啥
3 圖片的解析度剛好填滿窗口?你是指像素還是?解析度是圖像是否清晰的指標!
你是想拉伸圖片還是不拉伸圖片?拉伸圖片有幾種模式可以拉伸,有的丟失像素比較嚴重但速度快,有的相反..
4 用多線程解決,直接可以使用Timer
new Timer(1000, new ActionListener(){
public void actionPerformed(ActionEvent e){
button.setText(...) //每1秒更換文本
}
}).start();

補充:1 無論是外部類還是內部類,只要其實現了listener介面就可以實現監聽,在代碼中找到按鈕添加監聽器的代碼段形如:button.addActionListener(...)
將其替換為自己寫的外部類:
class A implements ActionListener{
...}
button.addActionListener(new A())即可。

2 tabbedPane隱藏標簽,難道你不是通過點擊標簽來切換而是用另外的按鈕來實現?不知你為何要這樣做..不過用另外的按鈕來切換的話只需要在按鈕監聽處理的地方加上: tabbedPane.setSelectedIndex(int index) 應該就可以了

G. 如何在eclipse中查看SWT源碼

使用Eclipse開發Java程序,有時候需要查看一下某個類的源碼,這時我們可以這樣做,
滑鼠放到你要查詢的類名上,按住Ctrl鍵+滑鼠左鍵就可以了!
如果發現出現錯誤---查不到源碼,那麼此時還需要設置一下,把JDK安裝目錄下的src.zip配置一下,此文件就是Java類庫的源碼。
以JDK1.8為例,查看一下src.zip文件

如果發現找不到源代碼,則進行設置

點擊Attach Source按鈕,彈出視圖,把JDK下的src.zip文件傳入點擊OK即可

此時按住Ctrl+滑鼠左鍵指向Java類庫當中的類,就可以查看類的源代碼

H. JAVA用SWT寫時鍾代碼

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define BUF_SIZE 80
int main()
{
time_t t;
struct tm *tm;
char s[BUF_SIZE];
if(time(&t) == ((time_t)-1)) return 1;
tm = localtime(&t);
if(!tm) return 1;
strftime(s, sizeof(s), ":%H:%M:%S", tm);
printf("%s\n", s);
system("pause");
return 0;
}

I. java中的SWT

挽尊

J. 有誰知道怎麼在Eclipse中看到SWT的源代碼。我把SWT的包導到了項目下還是看不到,求救啊!!!

SWT包在普通項目下可能看不到,你新建一個插件項目,再導入試試

閱讀全文

與javaswt源碼相關的資料

熱點內容
遼寧省解壓旅遊 瀏覽:267
pdf怎麼把部分圖紙拷到文件夾 瀏覽:695
讓程序員崩潰的40個瞬間 瀏覽:545
macbookair修改文件夾名稱 瀏覽:429
iphone如何快速刪除所有app 瀏覽:235
java高級編程pdf 瀏覽:884
編譯的時候報錯 瀏覽:386
安卓音量鍵怎麼鎖定 瀏覽:27
把pdf合並在一起 瀏覽:659
編程需要啥樣的電腦 瀏覽:968
把word2003轉換成pdf 瀏覽:467
androidbitmap顯示圖片 瀏覽:294
工具欄列印命令大全 瀏覽:784
銅仁人工智慧編程 瀏覽:396
第六章單片機的定時計數 瀏覽:696
命令方塊製作導彈指令是什麼 瀏覽:878
安卓手機為什麼不自帶掃描功能 瀏覽:46
海康威視伺服器如何進入pe 瀏覽:418
安卓機怎麼掃一掃連上無線網 瀏覽:645
python可以迭代字母嗎 瀏覽:347