Google
 
Web itpro-blogger.blogspot.com
金曜日, 2月 16, 2007

[Java]ポップアップメニュー(JPopupMenu)

▼質問
ポップアップメニューを、タイトル名と選択メニューの間にセパレーターを挟んだ感じで表示したいんだ。
どうしたらいいんだ?

▼回答
サンプルだよ!参考にしてくれ!!表示したいコンポーネントのマウスクリックイベントに追加すれば
右クリックで表示されるよ。

if ( javax.swing.SwingUtilities.isRightMouseButton(e) ) {
// 右クリック時の処理
JPopupMenu popupMenu = new JPopupMenu();

JLabel label = new JLabel( "タイトル");
label.setAlignmentX( JPopupMenu.CENTER_ALIGNMENT );
label.setHorizontalAlignment( JLabel.CENTER );
label.setFont( new java.awt.Font( "Monospaced", java.awt.Font.BOLD, 14 ) );
popupMenu.add( label );

JSeparator[] separator = new JSeparator[2];
for ( int i = 0 ; i < separator.length ; i++ ) {
separator[i] = new JSeparator( SwingConstants.HORIZONTAL );
popupMenu.add( separator[i] );
}

JMenuItem menuItem = new JMenuItem( "選択メニュー" );
menuItem.setHorizontalAlignment( JLabel.LEFT );
menuItem.setFont( new java.awt.Font( "Monospaced", java.awt.Font.PLAIN, 12 ) );
menuItem.setActionCommand( "選択メニュー" );
popupMenu.add( menuItem );

menuItem.addMouseListener( new java.awt.event.MouseAdapter() {
public void mouseClicked( java.awt.event.MouseEvent evt ) {
// マウスがクリックされたときのイベント処理
}
});
menuItem.addMouseListener( new java.awt.event.MouseAdapter() {
public void mousePressed( java.awt.event.MouseEvent evt ) {
// コンポーネント上でマウスボタンが押されると呼ばれるイベント処理

}
});
menuItem.addMouseListener( new java.awt.event.MouseAdapter() {
public void mouseReleased( java.awt.event.MouseEvent evt ) {
// コンポーネント上でマウスボタンが放されると呼ばれるイベント処理

}
});

if ( e.isPopupTrigger() ) {
popupMenu.show( e.getComponent(), e.getX(), e.getY() );
}

} else if( javax.swing.SwingUtilities.isMiddleMouseButton(e) ) {
// 中ボタンクリック時の処理

} else if( javax.swing.SwingUtilities.isLeftMouseButton(e) ) {
// 左クリック時の処理

}


木曜日, 2月 15, 2007

[Java]コンポーネントの操作不可

■JButton
  JButton.setEnabled( false );

■JTextField
  JTextField.setEditable( false );

■JSpinner
((JSpinner.DefaultEditor)JSpinner.getEditor()).getTextField().setEditable( false );
JSpinner.getComponent(0).setEnabled( false );
JSpinner.getComponent(1).setEnabled( false );

イベント処理でチェックが必要!
JSpinner.getComponent(1).addMouseListener( new java.awt.event.MouseAdapter() {
public void mouseClicked( java.awt.event.MouseEvent evt ) {
if ( !evt.getComponent().isEnabled() ) return;
}
});

■JCheckBox
  JCheckBox.setEnabled( false );

■JFormattedTextField
  JFormattedTextField.setEditable( false );


[Java]is関連

■isValidメソッド
 レイアウトの処理が済んでいるかチェックする.

■isShowingメソッド
  オブジェクトが表示されているかをチェックする.


水曜日, 2月 07, 2007

[Java]ファイル入出力ストリーム関連

public int FileRead( String fname ) {
int ret = 0;
BufferedReader reader = null;

if ( fname == null ) return -1;

try {
reader = new BufferedReader( new FileReader( fname ) );
String line = null;
while ( (line = reader.readLine()) != null ) {
System.out.println( line );
ret++;
}
}
catch ( FileNotFoundException e ) {
System.out.println( "ファイルが見つかりません。" );
ret = -2;
}
catch ( IOException e ) {
System.out.println( "入出力エラーです。" );
ret = -3;
}
finally {
try {
if ( reader != null ) reader.close();
}
catch ( Exception e ) {}
}
return ret;
}


This page is powered by Blogger. Isn't yours?