WindowBuilder のインストールとプロジェクトの作成は 『Pleiades Eclipse 4.7 Oxygen : SWT(Table) + MySQL の SQL(SELECT) で一覧表示』を参照して下さい。 C# と同時並行で Java を勉強するのならば、WindowBuilder がおすすめです。JavaFX は情報が少なすぎるのでプロになってから使えばいいと思います。Java そのものの学習には、これと AndroidStudio で簡単なスマホアプリを作れば十分です。
001.
import
java.io.BufferedReader;
002.
import
java.io.FileInputStream;
003.
import
java.io.InputStreamReader;
004.
005.
import
org.eclipse.jface.window.ApplicationWindow;
006.
import
org.eclipse.swt.SWT;
007.
import
org.eclipse.swt.events.SelectionAdapter;
008.
import
org.eclipse.swt.events.SelectionEvent;
009.
import
org.eclipse.swt.graphics.Point;
010.
import
org.eclipse.swt.widgets.Button;
011.
import
org.eclipse.swt.widgets.Composite;
012.
import
org.eclipse.swt.widgets.Control;
013.
import
org.eclipse.swt.widgets.Display;
014.
import
org.eclipse.swt.widgets.FileDialog;
015.
import
org.eclipse.swt.widgets.MessageBox;
016.
import
org.eclipse.swt.widgets.Shell;
017.
import
org.eclipse.swt.widgets.Text;
018.
019.
public
class
FormOpenText
extends
ApplicationWindow {
020.
private
Text text;
021.
022.
// *********************************
023.
// コンストラクタ
024.
// *********************************
025.
public
FormOpenText() {
026.
super
(
null
);
027.
createActions();
028.
}
029.
030.
// *********************************
031.
// コントロールの追加
032.
// ※ Design での変更が反映されます
033.
// *********************************
034.
@Override
035.
protected
Control createContents(Composite parent) {
036.
Composite container =
new
Composite(parent, SWT.NONE);
037.
038.
// *********************************
039.
// ボタン
040.
// *********************************
041.
Button btnNewButton =
new
Button(container, SWT.NONE);
042.
btnNewButton.addSelectionListener(
new
SelectionAdapter() {
043.
@Override
044.
public
void
widgetSelected(SelectionEvent e) {
045.
046.
// *********************************
047.
// ボタンのイベント
048.
// *********************************
049.
MessageBox mb =
new
MessageBox((Shell) parent, SWT.OK|SWT.CANCEL);
050.
mb.setText(
"テキスト"
);
051.
mb.setMessage(
"メッセージ"
);
052.
053.
int
result = mb.open();
054.
if
(result == SWT.OK ) {
055.
056.
System.out.println(
"OK"
);
057.
058.
String path =
"c:\\User"
;
059.
String[] filterExt = {
"*.txt;*.csv;*.log"
,
"*.*"
};
060.
String[] filterNames = {
"テキストファイル"
,
"全て"
};
061.
062.
FileDialog fd =
new
FileDialog((Shell) parent,SWT.OPEN);
063.
fd.setFilterPath(path);
064.
// https://www.programcreek.com/java-api-examples/?class=org.eclipse.swt.widgets.FileDialog&method=setFilterExtensions
065.
fd.setFilterExtensions(filterExt);
066.
fd.setFilterNames(filterNames);
067.
068.
String target = fd.open();
069.
if
(target !=
null
) {
070.
try
{
071.
BufferedReader buffer =
new
BufferedReader(
072.
new
InputStreamReader(
073.
new
FileInputStream(target),
074.
"SJIS"
));
075.
076.
// 一行ぶんの文字列
077.
StringBuilder textData =
new
StringBuilder();
078.
String line_buffer;
079.
080.
while
(
null
!= (line_buffer = buffer.readLine() ) ) {
081.
// メモリルに出力
082.
textData.append( line_buffer +
"\r\n"
);
083.
}
084.
085.
buffer.close();
086.
087.
// 画面のテキストエリアにセット
088.
text.setText(textData.toString());
089.
090.
}
catch
(Exception ex) {
091.
ex.printStackTrace();
092.
}
093.
}
094.
}
095.
if
(result == SWT.CANCEL ) {
096.
System.out.println(
"CANCEL"
);
097.
}
098.
}
099.
});
100.
btnNewButton.setBounds(
10
,
10
,
75
,
25
);
101.
btnNewButton.setText(
"New Button"
);
102.
103.
// *********************************
104.
// テキストエリア
105.
// *********************************
106.
text =
new
Text(container, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL | SWT.MULTI);
107.
text.setBounds(
10
,
47
,
414
,
200
);
108.
109.
return
container;
110.
}
111.
112.
// *********************************
113.
// 初期処理
114.
// *********************************
115.
private
void
createActions() {
116.
117.
}
118.
119.
// *********************************
120.
// 開始
121.
// *********************************
122.
public
static
void
main(String args[]) {
123.
try
{
124.
FormOpenText window =
new
FormOpenText();
125.
window.setBlockOnOpen(
true
);
126.
window.open();
127.
Display.getCurrent().dispose();
128.
}
catch
(Exception e) {
129.
e.printStackTrace();
130.
}
131.
}
132.
133.
// *********************************
134.
// アプリケーションウインドウ設定
135.
// *********************************
136.
@Override
137.
protected
void
configureShell(Shell newShell) {
138.
super
.configureShell(newShell);
139.
newShell.setText(
"New Application"
);
140.
}
141.
142.
// *********************************
143.
// Window サイズの初期設定
144.
// ********************************
145.
@Override
146.
protected
Point getInitialSize() {
147.
return
new
Point(
450
,
300
);
148.
}
149.
}