- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我看到了BallonTip在 java.net 上,我尝试将其集成到我的应用程序中,以便在用户单击表格单元格时显示。单击表格单元格时,气球提示会按预期显示,但是当您将其滚动到当前视口(viewport)之外时,您可以单击另一个单元格而不显示气球提示。当您滚动表格时,BallonTip 会再次显示。
这是一个例子:
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import net.java.balloontip.BalloonTip;
import net.java.balloontip.TablecellBalloonTip;
import net.java.balloontip.styles.EdgedBalloonStyle;
public class TableTest2 extends JFrame {
static final int LENGTH = 40;
TablecellBalloonTip tip;
JTable mainTable;
JPanel main;
JLayeredPane layeredPane;
JScrollPane mainScroll;
TableTest2() {
mainTable = new JTable(LENGTH, LENGTH);
CustomListSelectionListener clsl = new CustomListSelectionListener(mainTable);
mainTable.getColumnModel().getSelectionModel().addListSelectionListener(clsl);
mainTable.getSelectionModel().addListSelectionListener(clsl);
mainTable.setTableHeader(null);
mainTable.setColumnSelectionAllowed(true);
mainScroll = new JScrollPane(mainTable);
add(mainScroll);
tip = new TablecellBalloonTip(mainTable, new JLabel("Hello World!"), -1, -1, new EdgedBalloonStyle(Color.WHITE,
Color.BLUE), BalloonTip.Orientation.LEFT_ABOVE, BalloonTip.AttachLocation.ALIGNED, 5, 5, false);
setPreferredSize(new Dimension(500, 400));
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}
public static void main(String[] args) {
new TableTest2();
}
protected class CustomListSelectionListener implements ListSelectionListener {
private int row, column, lead, anchor;
private JTable table;
public CustomListSelectionListener(JTable table) {
this.table = table;
}
@Override
public void valueChanged(ListSelectionEvent evt) {
if (evt.getSource() == table.getSelectionModel() && table.getRowSelectionAllowed()) {
// row selection changed
row = table.getSelectedRow();
column = table.getSelectedColumn();
tip.setCellPosition(row, column);
tip.refreshLocation();
} else if (evt.getSource() == table.getColumnModel().getSelectionModel()
&& table.getColumnSelectionAllowed()) {
// column selection changed
lead = table.getColumnModel().getSelectionModel().getLeadSelectionIndex();
anchor = table.getColumnModel().getSelectionModel().getAnchorSelectionIndex();
if (lead <= anchor) {
column = anchor;
} else {
column = lead;
}
row = table.getSelectedRow();
tip.setCellPosition(row, column);
tip.refreshLocation();
}
}
}
}
如何在单击表格中的单元格后强制显示 BalloonTip?我认为有一个监听器,它正在监听滚动事件并管理 BallonTip 的绘制,但我不知道它是哪一个。
最诚挚的问候赫兹
最佳答案
根据to this mailing list ,BallonTip 1.2.1 版本中存在一个错误。现在,在 1.2.3 版本中,这个问题已得到修复。
关于java.net BalloonTip 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13010397/
我的应用程序中有一个托盘图标。当我在后台加载某些内容时,我会显示气球提示 20 秒。但是,如果后台加载提早完成,比如 10 秒内,我想隐藏气球提示。目前隐藏气球提示的唯一方法是单击气球提示中的关闭图标
我想显示 balloon tip在 JPanel 上的特定区域。我知道如何在 JComponent 上执行此操作。 我的JPanel上有一行,是否可以仅当鼠标悬停在该行上时才显示BallonTip。
我看到了BallonTip在 java.net 上,我尝试将其集成到我的应用程序中,以便在用户单击表格单元格时显示。单击表格单元格时,气球提示会按预期显示,但是当您将其滚动到当前视口(viewport
我正在尝试创建一个气球提示(窗口弹出窗口)并想知道用户是否点击了它。但我无法捕捉到点击。 我已经尝试了一些方法,但都行不通。 notification.ShowBalloonTip(5000);
我是一名优秀的程序员,十分优秀!