Ubuntu上のJavaでキー入力が効かなくなる。
JDK 6 Update 1 + Ubuntu 7.04
スペースキーを叩き続けると、ダイアログが表示が繰り返されるけど、キーを押しっぱなしにしてリピートさせると、その後キー入力が入らなくなってしまう。家のはSunのサイトから手でインストールしたけど、そういえばSynapticでインストールしたらどうなのかな。それでだめならバグ報告してもいいよね。
public class Test {
public static void main(String[] args) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final JFrame frm = new JFrame();
frm .setSize(400, 400);
JButton button = new JButton("Push!");
frm.getContentPane().add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
JOptionPane.showConfirmDialog(frm, "Hello");
}
});
frm.setVisible(true);
}
});
}
}
ドットピッチの違う画面でデュアルディスプレイ
う〜む、ちょっと使いづらいかもしれないな。ウィンドウを画面間で移動すると大きさ(見た目の)が変わってしまう。ドットピッチが違うんだから当たり前だけど。ブラウザとかのフォントサイズも、一方に合わせると、もう一方では不自由なサイズになるし。
あと、2つの画面を合わせた描画面には当然、描画されない領域が出来るけどウィンドウマネージャ側は、2つの画面を包含する長方形だと思っているようで(Ubuntuの場合。WindowsXPは未確認)、ウィンドウからはみ出すような描画の場合(長いブックマークリストとか)、画面から完全にはみ出してしまって見えなくなってしまうのも不便だ(通常ならば、折り返したり描画位置を移動したりして、ウィンドウ内に入るように調整してくれる)。
0と最大公約数
任意の数と0との最大公約数って定義されるんだろうか。BigInteger.gcd()は、片方が0の場合、0じゃない方を返すようになっている(API仕様書には書かれていない)。最大公約数の計算では、本来0は対象外のように思うんだけど、そうじゃないのかな。でも今の動作の方が、3つ以上の数の最大公約数を算出したい場合には都合がいいように思われる。
int gcd = 0;
for (int val:nums) {
gcd = calcGCD(gcd, val);
}
return gcd;
みたいにコードできるし。
メモ:FontMetrics
こんな感じかな。Graphics.drawString()に渡す座標は、Originの座標。文字列の幅は、FontMetrics.stringWidth(String)で取得できる。ただ、getAscent()/getDescent()と、getMaxAscent()/getMaxDescent()の違いが分からない。getAscent(String)とかなら分かるんだけど...
VMWare Server on Ubuntu
最近また動かなくなっていて、そういえばKernelがアップデートされたから、そのせいかなと思っていたら、知らないうちにSynapticに登録されていて、簡単にインストールできるようになっていたので早速インストールしてみた。Kernelコンパイルが必要だった頃がうそのようだ。
前は音が途切れがちだったけど、まともに鳴るようになっている。あとSilkypixでダブルクリックがうまくいかないことが多かったのも、良くなっている。




