金曜日, 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) ) {
// 左クリック時の処理
}
ポップアップメニューを、タイトル名と選択メニューの間にセパレーターを挟んだ感じで表示したいんだ。
どうしたらいいんだ?
▼回答
サンプルだよ!参考にしてくれ!!表示したいコンポーネントのマウスクリックイベントに追加すれば
右クリックで表示されるよ。
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 );
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メソッド
オブジェクトが表示されているかをチェックする.
レイアウトの処理が済んでいるかチェックする.
■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;
}
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;
}