Я создал простой Tableview, в котором должны храниться заметки, все работает нормально, но я хочу добавить всплывающую подсказку к каждому столбцу.
Пример моего TableView
Как вы можетесмотреть дату, которая не помещается в ячейку, я хочу добавить всплывающую подсказку, если при наведении мыши на ячейку она должна появиться и показать всю строку.
В основном последние 3 ячейки (date, noteTitle, noteTags)в каждой строке должна быть всплывающая подсказка, потому что они могут переполниться.
Вычеркнуто из GUI-класса (создание табличного представления)
//create TableCols
TableColumn colorCol = new TableColumn<Rectangle, String>("C");
colorCol.setMinWidth(30.0);
colorCol.setMaxWidth(30.0);
TableColumn prioCol = new TableColumn<Note, String>("priority");
prioCol.setMinWidth(70.0);
prioCol.setMaxWidth(70.0);
TableColumn dateCol = new TableColumn<Note, String>("date");
dateCol.setMinWidth(150.0);
dateCol.setMaxWidth(150.0);
TableColumn titleCol = new TableColumn<Note, String>("title");
titleCol.setMaxWidth(150.0);
titleCol.setMinWidth(150.0);
TableColumn tagsCol = new TableColumn<Note, String>("tags");
tagsCol.setMaxWidth(100.0);
tagsCol.setMinWidth(100.0);
fxListView.getColumns().addAll(colorCol, prioCol, dateCol, titleCol, tagsCol); //add cols to table. fxListView is the table
colorCol.setCellValueFactory(new PropertyValueFactory<>("rect"));
prioCol.setCellValueFactory(new PropertyValueFactory<>("priority"));
dateCol.setCellValueFactory(new PropertyValueFactory<>("date"));
titleCol.setCellValueFactory(new PropertyValueFactory<>("title"));
tagsCol.setCellValueFactory(new PropertyValueFactory<>("tags"));
DBManager temp = new DBManager();
fxListView.setItems(temp.getTableData()); // this Method just returns a ObservableList<Note> with a few test datas.
Note-Class
public class Note {
private Rectangle rect;
private String rectColorString;
private String priority;
private String date;
private String title;
private String note;
private String tags;
private String fontStyle;
private int fontSize;
public Note(String rectColorString, String priority,String title, String note,String tags, String fontStyle, int fontSize) {
this.rectColorString = rectColorString;
rect = new Rectangle(24, 24, Color.web(rectColorString));
this.priority = priority;
this.date = new Date().toString();
this.title = title;
this.note = note;
this.tags = tags;
this.fontStyle = fontStyle;
this.fontSize = fontSize;
}
public String getDate() {
return this.date;
}
public Rectangle getRect() {
return rect;
}
public void setRect(Rectangle rect) {
this.rect = rect;
}
public String getRectColorString() {
return rectColorString;
}
public void setRectColorString(String rectColorString) {
this.rectColorString = rectColorString;
this.rect = new Rectangle(24, 24, Color.web(rectColorString));
}
public String getPriority() {
return priority;
}
public void setPriority(String priority) {
this.priority = priority;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getTags() {
return tags;
}
public void setTags(String tags) {
this.tags = tags;
}
public String getFontStyle() {
return fontStyle;
}
public void setFontStyle(String fontStyle) {
this.fontStyle = fontStyle;
}
public int getFontSize() {
return fontSize;
}
public void setFontSize(int fontSize) {
this.fontSize = fontSize;
}
}
Вот еще одна картинка о том, как я хочу, чтобы всплывающие подсказкипоявляются (если мое объяснение недостаточно ясно) Результат