如何使用JavaSWT创建黄色提示?
谁能给我解释一下吗?如何使用JavaSWT创建黄色提示/通知 当我移动表格中的单元格时,我希望弹出一个小通知。大概是这样的: 这是我的Java代码:如何使用JavaSWT创建黄色提示?,java,swt,jface,hint,Java,Swt,Jface,Hint,谁能给我解释一下吗?如何使用JavaSWT创建黄色提示/通知 当我移动表格中的单元格时,我希望弹出一个小通知。大概是这样的: 这是我的Java代码: protected void checkAction() throws Exception { //Erstellen einer neuen Shell Shell shell = new Shell(); shell.setSize(280, 300); shell.setText("Testtabelle"
protected void checkAction() throws Exception {
//Erstellen einer neuen Shell
Shell shell = new Shell();
shell.setSize(280, 300);
shell.setText("Testtabelle");
//Erstellen einer neuen Tabelle
final Table table = new Table(shell, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
table.setLinesVisible(true);
table.setHeaderVisible(true);
//Einlesen der Überschriften und Vergabe der Namen
String[] titles = {"Element", "Stage", "Type", "Generate-User", "Change-User" };
for (int i = 0; i < titles.length; i++) {
TableColumn column = new TableColumn(table, SWT.NONE);
column.setText(titles[i]);
}
// Inhalte hinzufügen
final int count = 4;
for (int i = 0; i < count; i++) {
TableItem item = new TableItem(table, SWT.NONE);
item.setText(0, "Test "+i);
item.setText(1, ""+(i+1));
item.setText(2, "Testtype");
item.setText(3, "562910");
item.setText(4, "423424");
}
// Tabelle und Shell Packen
for (int i = 0; i < titles.length; i++) {
table.getColumn(i).pack();
}
table.setSize(table.computeSize(SWT.DEFAULT, 200));
shell.pack();
//MouseListener
table.addListener(SWT.MouseHover, new Listener() {
public void handleEvent(Event event) {
Rectangle clientArea = table.getClientArea();
Point pt = new Point(event.x, event.y);
int index = table.getTopIndex();
// System.out.println("TopIndex: "+index);
while (index < table.getItemCount()) {
boolean visible = false;
TableItem item = table.getItem(index);
for (int i = 0; i < (table.getItemCount()+1); i++) {
Rectangle rect = item.getBounds(i);
if (rect.contains(pt)) {
String selected = table.getItem(index).getText(i);
if (selected.equals("562910")){
String real = "Jonas";
System.out.println(real);
}
else{
System.out.println("Ausgewählt: "+selected);
}
}
if (!visible && rect.intersects(clientArea)) {
visible = true;
}
}
if (!visible)
return;
index++;
}
}
});
// Shell öffnen
shell.open();
}
protectedvoid checkAction()引发异常{
//埃斯泰伦-伊内尔-纽恩壳牌公司
外壳=新外壳();
外壳尺寸(280300);
shell.setText(“Testtabelle”);
//这是我的新工作
最终表格=新表格(外壳,SWT.MULTI | SWT.BORDER | SWT.FULL|U选择);
表.setLinesVisible(真);
表.setheadervible(true);
//埃因莱森·贝尔斯克利夫特和维加贝·贝尔斯克利夫特
String[]titles={“元素”、“阶段”、“类型”、“生成用户”、“更改用户”};
对于(int i=0;i
仅使用SWT使用中的代码
如果您可以使用JFace,那么
ColumnViewerToolTipSupport
就更容易了。您应该开始使用JFaceTableViewer
。要创建表列,您将使用TableViewerColumn
对于每个列,添加具有getToolTipXXX()
方法的CellLabelProvider
TableViewerColumn.setLabelProvider(CellLabelProvider)
下面是一篇好文章
Awt组件本质上是重量级的。您可以使用Swing组件创建此类标签。谢谢您的回答。哦,对不起。我犯了一个错误。我是说swt。在我的项目中,我只能使用swt,不能使用swing:(嘿,非常感谢。现在我有一个问题,它只在第一列中工作,而在另一列中不工作。是否有一个命令来选择我想要的列此功能?你的意思是它总是显示第一列文本或其他内容?我有一个有4列的表。当我移动到第2-4列中的单元格上时,工具提示只显示在第一列中。)mn.我希望工具提示针对具有特定滴度的inviduell列显示。我认为您必须使用
TableItem.getBounds(columnIndex)
在列中循环查找鼠标所在的列,然后使用列文本和边界作为工具提示。您能告诉我必须在哪里添加循环吗?我已经开始输入: