我創建一個包含基本數據的表格,這裏是我的軀體當光標指向特定行時,如何獲取JTable中的行和列?
當我點擊該行,它會彈出一個新的框架,它包含了所有的數據,它工作得很好,我可以正常獲取該行當我點擊一個行的列,
但這裏是我想要做的:
當我設置的光標移到表格行,它會自動獲得該行和列的數據在桌子上,我想要t o顯示數據的圖片,就像在fb上一樣,當您將光標放在配置文件上時,在2秒後,它將顯示該用戶的配置文件。請幫助,我只是一個新手:)
我創建一個包含基本數據的表格,這裏是我的軀體當光標指向特定行時,如何獲取JTable中的行和列?
當我點擊該行,它會彈出一個新的框架,它包含了所有的數據,它工作得很好,我可以正常獲取該行當我點擊一個行的列,
但這裏是我想要做的:
當我設置的光標移到表格行,它會自動獲得該行和列的數據在桌子上,我想要t o顯示數據的圖片,就像在fb上一樣,當您將光標放在配置文件上時,在2秒後,它將顯示該用戶的配置文件。請幫助,我只是一個新手:)
你可以做的是重寫JTable
的prepareRenderer
方法,併爲每個單元格設置一個工具提示。然後使用一些HTML的刀尖從AndrewThompson
在this answer看到我用這個形象從這個網站(這個問題)這個網址http://i.stack.imgur.com/Bbnyg.jpg
,但你可能會想使用一個資源從您的系統或類路徑並使用toUri().toUrl()
來創建網址。無論如何,html需要由<img src=
中的URL組成。您可以根據row/column
值切換它們。
這裏是例子。
import java.awt.Component;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
public class TestTableTooltip {
String html
= "<html><body>"
+ "<img src='"
+ "http://i.stack.imgur.com/Bbnyg.jpg"
+ "' width=160 height=120> ";
public TestTableTooltip() {
String[] cols = {"COL", "COL", "COL"};
String[][] data = {
{"Hello", "Hello", "Hello"},
{"Hello", "Hello", "Hello"},
{"Hello", "Hello", "Hello"}
};
DefaultTableModel model = new DefaultTableModel(data, cols);
JTable table = new JTable(model) {
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
if (c instanceof JComponent) {
JComponent jc = (JComponent) c;
jc.setToolTipText(html + "<br/>"
+ getValueAt(row, column).toString()
+ ": row, col (" + row + ", " + column + ")"
+ "</body></html>");
}
return c;
}
};
JFrame frame = new JFrame();
frame.add(new JScrollPane(table));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestTableTooltip();
}
});
}
}
UPDATE
可以從資源獲得一個URL(在你的類路徑)這樣
URL url = getClass().getResource("/path/to/image.png");
final String html
= "<html><body>"
+ "<img src='"
+ url
+ "' width=150 height=150> ";
如果它是一個文件從文件系統,你可以這樣做
URL url = new File("path/to/image.png").toURI().toURL();
*「我使用此圖片這個網址http://i.stack.imgur.com/Bbnyg.jpg從這個網站」*嗯..它很可愛。回答/問題在哪裏? –
@AndrewThompson **這**回答:P –
爆炸!我希望這是一個)在代碼中生成的,並聲明爲「開放許可證」b)是一系列角色之一,或者角色做不同的事情。 - (所有包括在主要[歡迎這些圖片的熱門鏈接](http://stackoverflow.com/a/19209651/418556)問答)。 –
看看這裏:http://stackoverflow.com/a/11532503/2405781 –
參見[?多JFrames,好/壞的做法的用途](http://stackoverflow.com/a/ 9554657/418556) –