android:textIsSelectable="true"選択できるようになる。
2012年12月27日木曜日
2012年12月16日日曜日
Java FXのダイアログ
標準のダイアログが無いようなので作ってみた。
import javafx.stage.*; import javafx.scene.*; import javafx.scene.paint.Color; import javafx.scene.control.*; import javafx.event.*; public class FBDialog { private static final int W = 300; private static final int H = 120; private static final int BUTTON_W = 80; public static void show(String title, String message, final Stage owner) { final Stage stage = new Stage(); stage.setResizable(false); stage.initModality(Modality.APPLICATION_MODAL); stage.initOwner(owner); stage.setTitle(title); Group root = new Group(); Scene scene = new Scene(root, W, H, Color.WHITE); Label label = new Label(); label.setText(message); label.setLayoutX(10); label.setLayoutY(20); label.setMaxWidth(W-20); label.setWrapText(true); Button button = new Button(); button.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent event) { stage.hide(); } }); button.setPrefWidth(BUTTON_W); button.setLayoutX(W / 2 - BUTTON_W / 2); button.setLayoutY(80); button.setText("OK"); root.getChildren().addAll(label, button); stage.setScene(scene); stage.show(); } }
例えばこんなコードを書いて実行すると、
FBDialog.show("Test", "This is a test dialog.", stage);
こんなダイアログが出る。
ラベルをセンターに置く方法がよくわからなかった。今後の課題。
Java FX アプリケーション用のantビルドファイル
Java FXの実行ファイルを作るのに、ビルドファイルをどう書けばいいのか悩んでたけど、解決した。
こちらのサイトで紹介されていたコードを改造した。
JavaFX プロジェクトの実行可能 Jar ファイルを作成する with Apache Ant
jdk1.7になって以前とパスが変わったようなので、その辺も少し修正。環境変数はこんなかんじ。
JAVA_HOME C:\Program Files\Java\jdk1.7.0_07
で、build.xmlはこんなかんじ。
<project name="JavaFXProject" basedir="." default="pack" xmlns:fx="javafx:com.sun.javafx.tools.ant"> <property environment="env" /> <property name="javafx.tools.ant.jar" value="${env.JAVA_HOME}/lib/ant-javafx.jar" /> <property name="src" location="src/main/java" /> <property name="dest" location="build/classes/main" /> <property name="jardest" location="build/libs" /> <property name="app.vendor" value="com.fb" /> <property name="app.id" value="fxtest01" /> <property name="app.name" value="FXTest01" /> <property name="app.version" value="1.0" /> <property name="app.main-class" value="com.fb.fxtest.FXTest01" /> <taskdef resource="com/sun/javafx/tools/ant/antlib.xml" uri="javafx:com.sun.javafx.tools.ant" classpath="${javafx.tools.ant.jar}"/> <target name="clean"> <delete dir="build" /> </target> <target name="compile" depends="clean"> <mkdir dir="${dest}" /> <javac srcdir="${src}" destdir="${dest}" classpath="${env.JAVA_HOME}/jre/lib/jfxrt.jar" /> <copy todir="${dest}"> <fileset dir="${src}" includes = "**/*.fxml" /> </copy> </target> <target name="pack" depends="compile"> <fx:application id="app-info" name="${app.name}" mainClass="${app.main-class}" /> <fx:jar destfile="${jardest}/${app.id}.jar"> <fx:application refid="app-info"/> <manifest> <attribute name="Implementation-Vendor" value="${app.vendor}"/> <attribute name="Implementation-Title" value="${app.name}"/> <attribute name="Implementation-Version" value="${app.version}"/> </manifest> <fileset dir="${dest}"/> </fx:jar> </target> </project>
使用したサンプルデータはこちら。
2012年11月11日日曜日
Vertex Shaderのコンパイルエラー
Vertex Shaderのコンパイル時にエラーが出たので調査。
uniform mat4 u_mvp; void main() { ... };Sony Tabletだと、これでコンパイル通ってたけど、他の機種やエミュレーターではコンパイルエラーが出た。理由は簡単で、最後のセミコロンを外すとあっさりコンパイルが通った。機種によってコンパイラの挙動が違うんだな。
2012年9月26日水曜日
Google Play Storeの再インストール
Sony TabletでGoogle Playストアを起動しようとすると、「com.android.vendingは終了しました」というエラーが出て起動しなくなった。ネットでいろいろ調べてもよくわからかったけど、自分で試行錯誤しているうちに解決した。Sonyに再インストールを依頼すると6,000円もかかるということなので、必死になって解決法を探したw
最新バージョンを取得すればOK。
名前にスペースが入っていたら、実行時にエラーになるので、名前を適当に変える。
Android SDK
ダウンロードしたファイルを展開し、adb.exeのあるディレクトリを、システム環境変数のPATHに追加する。
※この操作で何か不具合が出るかもしれないので、くれぐれも自己責任で!
症状の詳細
- Google Playストアのアイコンがなぜかcom.android.vendingというアイコンに置き換わっている。
- アイコンから起動すると「com.android.vendingは終了しました」というエラーが出て、起動しない。
- 他から起動しても同じようなエラーが出る。
- アプリ一覧でGoogle Playストアが見つからない。
Google Play Storeの再インストール
Windows7から、コマンドプロンプトを使って再インストールしてみました。ストアアプリのパッケージを探してきてダウンロードする。
自分が試したときのバージョンは、Google Play Store-8014017.apk。ググればどこかにあるはず...最新バージョンを取得すればOK。
名前にスペースが入っていたら、実行時にエラーになるので、名前を適当に変える。
例: gps8014017.apk適当なディレクトリにファイルを入れる。
例: C:\temp\gps8014017.apk
Android SDKをインストールしてadbを実行可能にする。
Android SDKのダウンロードはこちらAndroid SDK
ダウンロードしたファイルを展開し、adb.exeのあるディレクトリを、システム環境変数のPATHに追加する。
再インストール
PCと端末をUSBデバッグ接続し、コマンドプロンプトから以下のコマンドを入力する。C:\temp>adb install -r gps8014017.apkSuccessというメッセージが出たら成功です。
※この操作で何か不具合が出るかもしれないので、くれぐれも自己責任で!
2012/12/27更新
adb関連の内容がわかりにくかったので修正。現在、adb.exeは標準では入ってないようです。SDKマネージャーから取得できるようだけど、未検証です。
登録:
投稿 (Atom)