このような動作が必要な場合:JTable
セルを指しているマウスカーソルが表示される場合は、ポップアップメニューなどを表示する必要があります。セル上でマウスをクリックしないでください。助言がありますか?JTableのセルにマウスカーソルを置くと、ポップアップメニューが表示されます
0
A
答えて
3
JB Nizetは良い点があります。 OTOH、私はこの例を準備しました。そして、「私たちは技術を持っています」。
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
class TimesTable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JTable t = new JTable(new TimesTableModel());
t.setDefaultRenderer(Object.class, new TimesTableRenderer());
JOptionPane.showMessageDialog(null, t);
}
});
}
}
class TimesTableRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
Component c = super.getTableCellRendererComponent(
table,value,isSelected,hasFocus,row,column);
JComponent jc = (JComponent)c;
jc.setToolTipText(
(row+1) + "x" + (column+1) + "=" + ((row+1)*(column+1)));
return jc;
}
}
class TimesTableModel extends DefaultTableModel {
@Override
public int getColumnCount() {
return 7;
}
@Override
public int getRowCount() {
return 5;
}
@Override
public Object getValueAt(int row, int column) {
return new Integer((row+1)*(column+1));
}
}
0
お世話になりました。私はセル内のデータを変更する必要がありますが、マウスクリックが1つしかないようにしてください!私が上で話したことは、それが変種からのものです。私は2つのボタンを持つポップアップメニューを持っています: "アクセス"と "禁止"。その私はあなたがそれについて考える何
public class PopupMenuMouseMotionListener implements MouseMotionListener {
private JXTreeTable jxTreeTable;
private TreeTableModel model;
private JPopupMenu popupMenu;
private boolean inCell = false;
private Rectangle r = null;
private boolean visible = false;
private long startTime = 0L;
private Component[] buttons;
PopupMenuMouseMotionListener(JXTreeTable jxTreeTable, TreeTableModel model, JPopupMenu popupMenu) {
this.jxTreeTable = jxTreeTable;
this.model = model;
this.popupMenu = popupMenu;
this.buttons = popupMenu.getComponents();
}
public void mouseDragged(MouseEvent event) {
//Does nothing
}
public void mouseMoved(MouseEvent event) {
Point point = event.getPoint();
int row = jxTreeTable.rowAtPoint(point);
int column = jxTreeTable.columnAtPoint(point);
double time = 0.0;
if (column >= 1) {
if (startTime == 0L) {
startTime = System.currentTimeMillis();
};
long ms = System.currentTimeMillis() - startTime;
time = ms/1000 + ms % 1000;
if (r == null) {
r = jxTreeTable.getCellRect(row, column, false);
};
inCell = true;
Component c = event.getComponent();
if (inCell && r.contains(point)) {
if (time >= 100.50 && visible == false) {
popupMenu.show(c, r.x, r.y);
visible = true;
}
} else {
popupMenu.setVisible(false);
inCell = false;
startTime = 0L;
r = null;
visible = false;
}
} else popupMenu.setVisible(false);
}
}
...そのような解決策を思い付きましたか?
関連する問題
- 1. AbstractTableModelが拡張されたときにJTableでセルを表示させる
- 2. JTableセルのアイコンが誤って表示される
- 3. JComboBoxのポップアップメニューが表示されない
- 4. Chrome、Opera、Safariのポップアップメニューがフラッシュの下に表示されます
- 5. Jtableが表示されませんか?
- 6. 特定のJTableセルのマウスカーソルを設定する
- 7. JTableリフレッシュが表示されない
- 8. JTableの変更のマウスカーソル
- 9. JTableは印刷時にボックスとして表示されます
- 10. カーソルを画像の上に置くとテキストが表示されます
- 11. `ActionBar`アイテムのポップアップメニューを表示します。
- 12. Jquery:メニュー項目にカーソルを置くと、テキストが表示されます
- 13. JTableセルにタイムカウンタを表示する効率的な方法
- 14. カスタム表モデルを使用してJTable内のセルを強調表示します
- 15. コレクションビューのセルが表示されない
- 16. マウスカーソルにグラフィックを置く方法は?
- 17. JTableの表示と非表示
- 18. jtableセルを別のセルからの変更を聞くには
- 19. JTableの列タイトルが表示されず、代わりに 'A'、 'B'、
- 20. 別のアプリケーションのウィンドウにポップアップメニューを表示
- 21. アイコンの上にカーソルを置くと、ツールチップにテーブルが表示される
- 22. UICollectionView - セルが表示されない
- 23. Xcode 7.3 UITableViewControllerセルが正しく表示されない
- 24. ボタンの上にリアボーバーを置くと、別のボタンが表示される
- 25. フォルダを選択したときにのみEclipseプラグインのポップアップメニューが表示されます
- 26. NSFetchedResultsControllerDelgateと交互に表示される表ビューのセル
- 27. jpcapパケットキャプチャされたデータをJTableに表示するには?
- 28. TableViewCellでUIButtonを有効にすると、より多くのセルが表示されます
- 29. フィルタ勾配がセルに適用されているときにセル境界がIE9に表示されない
- 30. JTableに何も表示されませんか?
私はツールチップを理解していますが、ポップアップメニューは非常に面倒です。ポップアップメニューを表示するには、一度クリックする必要があります。ポップアップメニューを表示するには、ポップアップメニューを隠すために100回以上クリックするよりも好きです。 –
@JBNizetはそれに依存しています。 – dvigal