Java 高速GUI SWT 3

■ このスレッドは過去ログ倉庫に格納されています
2006/11/30(木) 18:03:19
とりあえず、前スレ落ちてから時間たつけど、立ててみた。

前スレ

Java 高速GUI SWT 2
http://pc8.2ch.net/test/read.cgi/tech/1068349883/
2009/12/29(火) 18:17:26
>>486
何的外れな事を…
2010/01/08(金) 17:03:19
startコマンドつかえ。
バッチファイル
start "" java -classpath lib\swt.jar;lib\log4j.jar;lib\derby.jar;lib\swt_app.jar app.control.ApplicationMain
489デフォルトの名無しさん
垢版 |
2010/01/15(金) 14:16:20
Swing の ActionMap/InputMap でできるようなショートカットを使いたいんだけど、例えば
ウィンドウのどこにフォーカスがあっても CTRL+S で保存メソッドが起動するようには
どうすればいいですか?
2010/01/24(日) 21:22:05
あるコンポーネントに描画されているグラフィックを、
別のコンポーネント上に描画するにはどうすればよいですか?
2010/01/25(月) 00:19:10
>>490 やったことないけど、3.4からControlでgetListeners()使ったPaintListenerの取得とか、
print()とか、できるようになったから試してみたら?
2010/01/25(月) 12:45:18
>>491
すまん、スレまちがえた
SWINGスレで質問したかったんだよ。。。
493デフォルトの名無しさん
垢版 |
2010/01/28(木) 22:19:28
TextCellEditorを設定したセルをクリックするとそのセルだけ幅が広がり、
となりのセルを隠してしまいます。そのとなりのセルをクリックしたい
場合は一度関係ない場所をクリックしてセルからフォーカスをはずさなければ
なりません。なのでセルをクリックした時に自動的に幅が広がらないように
するにはどうすればいいでしょうか?
494デフォルトの名無しさん
垢版 |
2010/01/29(金) 13:25:34
>493

もう自分で答え言っているのでは?
Textが自動で広がらないようにする→自動で広がるコードを探す
→そこをoverrideする

(ヒント) SWT.DEFAULT

495デフォルトの名無しさん
垢版 |
2010/01/29(金) 21:59:13
>>494さん。
すいません、バカなので解らないのですが、TextCellEditorを継承したクラスを
を自分で作成するのでしょうか、それともどこかにSWT.DEFAULTを指定すれば、
目的が達成されるのでしょうか。
496デフォルトの名無しさん
垢版 |
2010/01/30(土) 12:00:12
>>494さん
解決しました。ありがとうございました。
public LayoutData getLayoutData() {
LayoutData result = new LayoutData();
result.minimumWidth=0;
return result;
}
2010/02/09(火) 22:59:11
SWTでのUIの設定値を全て外部の(例えばXMLなど)ファイルに
持たせて、そのファイルの設定値をいじればいくらでも改変可能なんて作りって
出来るんですかね?
2010/02/09(火) 23:11:47
そう作ればいくらでも出来るだろ。
2010/02/10(水) 00:08:20
じゃぁやってみせろよ
2010/02/10(水) 00:23:01
いくらで?
2010/02/10(水) 00:29:28
正直に言えよ、「できません」って
2010/02/10(水) 20:17:14
おとなしくe4入れてXWTつかっとけ
2010/02/10(水) 22:56:46
tableviewerで質問させてください。

csvファイルで読み込んだデータをテーブルに追加する処理を作成中なのですが、
カラムの数が固定ではなく可変の場合の処理がうまくいきません。

一定の領域を事前に確保しておいて、その領域にカラムを登録する場合なら
問題なかったのですが、制限なく登録できるようにしたいのです。

tableviewerのことがのっているサイトを見ても
カラム数が固定となっているものばかりで、1週間ほど悩んでいます。
どうすればカラムが可変でも問題なくなるのでしょうか?
2010/02/11(木) 18:31:46
import java.swing.*;

インポートで*を使うデメリットは何かありますか?
2010/02/11(木) 18:36:36
誤爆しました・・・
2010/02/27(土) 02:18:23
ウィンドウをリサイズしたときに SashForm の左の領域幅を変えたくない
んだけどリサイズウェイトってどうやって指定するの?
JSplitPane#setResizeWeight() みたいなのがあれば良いんだけど。
2010/02/28(日) 22:04:00
欲しいものの代わりに自分で計算して、ちまちま再描画だろう。
もし出来たら、公開しとくと、他にも欲しい人が居るかもね。
2010/03/01(月) 04:40:07
ありがとう。回答あるまで待ってみたが、無いと分かれば安心して自分で作れますわ。
というかさっき出来て Wiki に書いておいたので 1 ヶ月もすれば検索ひっかかるかも。
2010/03/03(水) 05:15:44
ToolTip の豪華版が必要なので SWT.NO_TRIM の Shell でそれっぽいのは出来たんですが、
open したときにフォーカスを持って行ってしまいます。フォーカスを持って行かずに
オープンする方法はないでしょうか。
2010/03/06(土) 05:24:56
やってること:
通常 → 複数行入力
一行入力モード ON → ENTER キーが押されたら処理開始

Text (SWT.MULTI) に KeyListener 仕掛けて ENTER キーが押されたら処理をしようと思ったんだけど
日本語入力中に確定の ENTER 押しても反応してしまうのよ。入力中かどうか判定する方法はない?
2010/03/06(土) 08:56:51
Eclipse で日本語入力後に [CTRL]+[Z] 押した時の挙動を見てると、IME の未確定状態も全部
入力として拾ってるみたいだから無理かもしれんね。
2010/03/07(日) 19:06:30
TreeItem の項目を右クリックした時に状況に応じたポップアップメニューを出すよう
作ってるんだけど、どうしても選択とセットになってしまう。 MouseEvent には doit
がないし、選択項目を移動しないで右クリックのイベントだけ拾う様な方法はないですか?
2010/03/09(火) 11:37:14
>>512
ポップアップメニューをPopupMenuListener#popupMenuBecomeVisibleで加工する。
2010/03/14(日) 19:07:15
>>510
VerifyKeyListener
2010/03/14(日) 19:11:53
↑は ENTER 書き込みの話。日本語入力は関係なかったな。
2010/03/16(火) 20:14:06
何百個も列があるテーブルを作ったんだが、
各TableColumnの表示幅の合計が33500くらいを超えると
それ以降のテーブルヘッダが表示されなくなった・・・。
(表示幅33500以前のヘッダは表示される)

これって仕様なのかしら(´・ω・`)
解決方法知りませんか?
2010/03/17(水) 01:39:17
無茶しやがってw

http://pc12.2ch.net/test/read.cgi/tech/1268702584/
★★Java質問・相談スレッド137★★
http://pc12.2ch.net/test/read.cgi/tech/1267796762/
★★ Java の宿題ここで答えます Part 69 ★★
2010/03/17(水) 06:45:40
StyledText って軽くてシンプルで便利だなw
2010/03/17(水) 12:43:35
>>516
winのコントロール全般に、その幅で裁ち切られるんじゃなかったっけ。

あと、そもそも何百列も一度に表示するのは設計ミス。
520516
垢版 |
2010/03/17(水) 19:39:20
>>519
そうなんですか(´・ω・`)じゃあどうしようもないってことなんですかね。

>あと、そもそも何百列も一度に表示するのは設計ミス。
一度に出してテーブル内のスクロールバー移動で
最後まで見えるようにしろと言われまして・・・
2010/03/18(木) 11:03:37
エクセルのピボットテーブルみたいなノリだなw
要求が馬鹿過ぎ。
表示だけvcで作ってjniで呼んだら?
2010/03/22(月) 02:27:18
Shell をオープンするとどうしてもそっちにフォーカスが移動してしまうんだが
フォーカスを受けない Shell って作れないのかな? AWT でいう Window や Swing の JWindow みたいな。
2010/03/22(月) 03:18:10
JProgressBar の setIndeterminate(true) と同じ状態って ProgressBar でできませんか?
Mac の進捗バーのあのうねうねが出したいんですが。
2010/03/22(月) 14:08:10
>>522
Tooltipが参考になると思われ。

>>523
できた気がする。
2010/03/22(月) 16:12:58
マカってホント情報弱者だな。
2010/03/22(月) 17:11:29
いくよ!たましいのきょうめ(ry
2010/03/27(土) 02:42:40
Composer - SWT HTML Editor Widget
2010/03/27(土) 02:45:08
swtのwysiwygエディタなんですけど
Composer - SWT HTML Editor Widget
http://sourceforge.net/projects/swt-composer/
これの使い方分かる人いませんか?
また、これ以外にswtのwysiwygエディタってなにかありますか?
2010/03/27(土) 04:08:53
馬鹿にはswtは無理。
vsに戻りな。

http://pc12.2ch.net/test/read.cgi/tech/1269602041/
Visual Studio 2008 Part 20
http://pc12.2ch.net/test/read.cgi/tech/1267092670/
Visual Studio 2010 Part3
http://pc12.2ch.net/test/read.cgi/tech/1259076828/
Visual Studio 2008 Part 19
http://pc12.2ch.net/test/read.cgi/tech/1115707321/
Visual Studio IDE環境
http://pc12.2ch.net/test/read.cgi/tech/1225268851/
Visual Studio 2005 Part 25
2010/03/27(土) 09:04:50
hagedou
2010/03/27(土) 23:31:12
>>528
「swtのwysiwygエディタ」じゃなくて、Eclipse用のHTML WysiWygエディタなのか。
もしそうだったら、このスレじゃなくて、Eclipseスレに行ったほうがよいよ。
2010/03/28(日) 02:23:23
Browser 上で選択されているテキストを取得したいんだけど何か良い方法はないかな?
2010/03/28(日) 02:38:10
http://pc12.2ch.net/test/read.cgi/tech/1137771139/
【OLE】オートメーション総合スレ【ActiveX】

javaからは直接呼べないけどな。

vbかvcでもどぞ。
2010/03/28(日) 13:36:12
>>532
ActiveXコントロールをSWTアプリケーションへ統合する
ttp://www.ibm.com/developerworks/jp/opensource/library/os-activex/
2010/03/30(火) 15:42:45
そりゃ Browser じゃできないって事で良いですかね。
2010/03/31(水) 05:26:05
ブラウザにその機能がないのだもの。
2010/04/10(土) 10:49:04
Mac だと TreeItem に 4x4 くらいの小さな画像設定した時に、勝手に 16x16 くらいに
引き延ばしやがるのかな。
2010/04/11(日) 02:34:57
マカってホント情報弱者だな。
539デフォルトの名無しさん
垢版 |
2010/04/11(日) 05:45:37
>>537
SWTのバグではなく、OSの仕様だと思われ・・・
TreeItemの1番目にたとえば、16x16のイメージを設定している場合、
2番目、3番目それ以降に異なるイメージを設定しても、1番目のTreeItem
がデフォルトサイズとなり、勝手にOSが引き伸ばしたイメージを
作成し設定する。
これは、Treeだけではなく、TableやTabFolderでも同様。

1番目のTreeItemをあえて使わないとか、透過GIFで大きいイメージを
設定するとか試してみれば?


540デフォルトの名無しさん
垢版 |
2010/04/12(月) 16:18:38
Browserクラスがサポートするブラウザとブラウザのバージョンが分かる
サイトってどこかにありますか?
2010/04/13(火) 02:36:01
>>540
ttp://eclipse.org/swt/faq.php
542537
垢版 |
2010/04/13(火) 07:17:18
>>539
すみません、別の問題だったみたいです。
大きさの違う画像を再設定した場合、新しい画像が以前の画像の大きさにリサイズされてしまうという
話でした。画像の再設定後に layout() や computeSize() を試してみましたが、どうも以前のサイズが
残ったままのようです。サンプルソースおいておきます。何かうまい方法はないでしょうか?

http://tool-ya.ddo.jp/webfs/~enigma/IconSample.java

フォントサイズを変更したときにフォントに合わせてサムネールのサイズも変えるという処理を組んでいた
のですが、Windows で動かしたときにたまたま初期設定のフォントサイズが想定したサイズだったので
うまく動いているように見えただけでした。
2010/04/16(金) 18:27:32
ウィンドウバーの細いウィンドウって出せない?
Illustrator のツールウィンドウみたいなのが出したいんだけど。
544デフォルトの名無しさん
垢版 |
2010/04/18(日) 08:57:05
SWTなんてgcjがawt&swing対応になったら、なんの価値もなくなるだろ。
土人だというアドバンテージしかないんだからSWTには。消えてなくなるよ。
545デフォルトの名無しさん
垢版 |
2010/04/18(日) 12:46:51
gcj (プゲラ
546デフォルトの名無しさん
垢版 |
2010/04/18(日) 20:30:31
ん? あのtomcatもgcjでコンパイルしてるんだろ?
2010/04/20(火) 09:45:18
印刷マージン列を例えば 100 に設定するとだいたい 100 カラムあたりに補助線が
出るじゃん (正確じゃないけど)。ああいったような縦線って StyledText でどう
やって出すの?
2010/04/21(水) 04:26:29
setToolTip() で設定したツールチップをマウスのロールオーバーなしに
強制的に表示したいんだけど、ToolTip インスタンス作って自前で表示するしかない?
549デフォルトの名無しさん
垢版 |
2010/04/21(水) 19:57:16
ShellとかCompositeはGraphicsオブジェクトを取得して
その上でお絵かきできるんだろうか? paint()メソッドは
呼ばれるの?
2010/04/21(水) 20:26:33
PaintListener
551デフォルトの名無しさん
垢版 |
2010/04/21(水) 21:38:45
おおきに。
俺、netbeansのGUIビルダーでばっかりやってやから
自分でレイアウト手書き殆どしてないんだよな。
netbeansのnullLayoutで作ったソースを
もってきて、SWTはLayout使わずにsetBounds()で部品の
位置決めするのが楽そうだな。
2010/04/26(月) 14:39:11
>>543
new Shell(display,SWT.TOOL|SWT.TITLE);
2010/04/29(木) 12:39:01
StyledText の setLineWrapIndent() って SWT 3.6 からか…
3.6 が正式リリースになるのっていつ頃になりそう?
2010/04/29(木) 15:14:03
そりゃ、Eclipse 3.6が正式リリースされる頃、だと思うぞ。
ttp://www.eclipse.org/projects/project-plan.php?projectid=eclipse#release_milestones
''Our target is to complete 3.6 in late June 2010''
2010/04/29(木) 18:06:42
なんだもうすぐじゃねぇか。Milestone リリースとはいえ道理で安定しているわけだ。
どうもありがとうございました。
2010/04/29(木) 23:23:40
StyledText への画像埋め込みで Cocoa (32/64bit両方) だと Glyph に指定した
幅と高さの領域を取ってくれないのな。並べた画像が重なっちまう。
Win や Carbon ならちゃんと表示されるのに。
2010/05/02(日) 07:12:49
shell.setLayout(new FillLayout(SWT.VERTICAL));
composite1.setLayout(new FillLayout(SWT.HORIZONTAL));
composite2.setLayout(new FillLayout(SWT.HORIZONTAL));

として敷き詰めたパネルの中央部分をユーザーが
マウスのドラッグすることでサイズを変更出来るようにするには何を変えたら良いのでしょうか?

あまりに基本的な事柄でバカらしいと思われるかもしれませんが
教えていただけると嬉しく思います。
2010/05/02(日) 08:34:44
ドラッグのイベント拾って shell のサイズ変えれば良いんじゃね?
2010/05/02(日) 09:52:39
マウスがウィンドウから出た時に自動的にクローズする処理を書いています
(Shell 上にはマージン 0px で 1 つのコンポーネントが乗っています)。

mouseExit() で Shell を dispose() する MouseTrackListener を Shell に仕掛けると
0 pixel の境界から出た時に通知されません。同じリスナを内包するコンポーネントに
仕掛けると、今度はタイトルバーやスクロールバーの上に行っただけで閉じてしまいます。
何か良い方法はないですか。
2010/05/03(月) 08:27:00
>>558
わかりにくい表現ですいません…。
SashFormを使えばやりたい事ができることがわかりました。
2010/05/04(火) 17:00:43
iPad で SWT って動くんかね。
2010/05/04(火) 18:12:57
Jobsの気が変わらない限り、法的に不可能。
iPad/iPhoneでは、iPhone用のObjective-C以外でプログラムを作れないことになっている。
2010/05/04(火) 18:16:56
Objective-Cはもういやだー
2010/05/04(火) 18:50:31
Java は動くんじゃねぇの。
まぁ下のネイティブライブラリを汚侮辱都市で書き直す必要があるが。
2010/05/04(火) 20:02:06
Javaランタイムの開発自体が禁じられているから、無理。
2010/05/05(水) 02:00:44
ああ、標準で Java 積んでんのは Android だったか。
しかし Apple はどうするつもりかね。バカもチョンも
デザイナに毛の生えた奴から組み込みのプロまで全員汚侮辱都市使えってか。
2010/05/05(水) 10:10:19
AndroidはJava言語で開発できるが、JavaVMじゃないから注意
JNI使ってるものは特に無理
2010/05/06(木) 11:44:26
AndroidはDalvik VM。
中間コードの形式も違う。
2010/05/06(木) 18:34:39
確かHotspotとかJITも無かったような気が。
普通のVMじゃ駄目だったのかな?良くわからん
2010/05/06(木) 22:05:56
フットプリント軽くするためのレジスタマシンだからね
Javaと同じとは考えないほうがよい
2010/05/06(木) 22:15:35
スタックマシンと何が違うのやら教えてエロい人"!
個人的にはコアライブラリとソースレベルでの互換性があれば何でもいいです。
2010/05/08(土) 01:25:44
>>559
マウスキャプチャして、
ムーブイベントで座標が範囲内かどうかみる。
2010/05/14(金) 09:58:21
text.setBackground(Color.gray);
とすると
The method setBackground(Color) in the type Control is not applicable for the arguments (Color)
というエラーメッセージが出たんですが、
「setBackground(Color) は (Color) を引数にとることができません。」
としか自分の英語力では理解出来ず解決策がわかりません。

どうすればこのエラーを無くすことができるでしょうか?
2010/05/14(金) 10:00:46
SWT の Color と AWT/Swing の Color は別クラス。

text.setBackgroun(Display.getDisplay().getSystemColor(SWT.COLOR_GRAY));
2010/05/14(金) 11:14:46
>>574
ありがとうございます。
これで背景色の変更ができるようになりました。
2010/05/18(火) 09:08:15
Label で表示したテキストを選択可能にしたいのですが
該当のメソッドが見つかりませんでした。
Text でsetEditable(false) で代用するのが良いのでしょうか?
2010/05/18(火) 20:49:01
直接の解決策は知らないけど
EclipseのAboutダイアログをSWT Spy plug-inで調べてみたらどうかな?
2010/05/18(火) 23:37:26
>>577
こんなプラグインがあるんですね、ありがとうございます。
調べてみたところAboutダイアログの文字が選択出来る部分は
StyledTextが使われてるようです。
2010/05/19(水) 09:12:40
SWT.READ_ONLY 付けた Text 使うでしょ。
580デフォルトの名無しさん
垢版 |
2010/06/13(日) 08:36:23
C#でいうスプリッタ?みたいな、マウスでフレーム移動させるみたいなのはありますか?
2010/06/13(日) 08:41:17
SashForm
582デフォルトの名無しさん
垢版 |
2010/06/19(土) 18:13:21
SWT初心者がちょっと質問します。

ttp://wdsdx.com/node/41

このサイトに記述されているプログラムを参考にしているのですが、
作成したプログラムが物凄く重いので原因を探していると、

while (!self.sShell.isDisposed()) {
  if (display.readAndDispatch()) {
    display.sleep();
  }
}

ここで常時if文を使っているので、物凄く重くなっていると思われます。
なにかいい解決方法はないでしょうか?
2010/06/19(土) 19:05:09
ねぇよ。
イベント発生するまで待機する処理だからプロファイラで見たら時間かかってるように見えて当たり前。
2010/06/19(土) 19:49:51
>>583
勉強不足ですみませんでした。

回答ありがとうございました。
585デフォルトの名無しさん
垢版 |
2010/07/15(木) 19:40:02
ラベルを大量に並べて、それをスクロールして見ることはできないんでしょうか?

下のコードにあるようにラベルを並べてスクロールで動かしたかったのですが
スクロールバーは現れるもののスクロール自体が効いていませんでした。

shell.setLayout(new GridLayout(1,true));
Composite composite = new Composite(shell,SWT.V_SCROLL);
composite.setLayout(new GridLayout(1,true));
for(int i=1; i<100; i++){
Label label = new Label(composite,SWT.NONE);
label.setText("ラベル" + Integer.toString(i));
}

動かす方法をご存じの方いましたら教えてください。
586デフォルトの名無しさん
垢版 |
2010/10/04(月) 15:21:12
お前らGCJ使ってる?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況