我正在尝试为特定目的创建一些特殊组件,在该组件上我需要绘制一个HTML字符串,这是一个示例代码:
public class MyComponent extends JComponent{
public MyComponent(){
super();
}
protected void paintComponent(Graphics g){
//some drawing operations...
g.drawString("<html><u>text to render</u></html>",10,10);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,drawString方法似乎没有识别HTML格式,它愚蠢地绘制字符串就像它一样.
有没有办法让这项工作?
我有一个JTable从数据库加载数据.因为有时数据太多,我想在Jtable中添加一个加载圈来通知用户数据正在加载.这是我希望它的形象:

这可能吗?如何在Swing中完成?
PS:我不想使用进度条,我只想要表中的圆圈.
更新:该表是GUI的一部分,我只想禁用或显示JTable中的加载并保持其他组件不变.
我有一个JScrollPanel包括一个大面板,它自己包括3个内板.我想把一个面板(例如)放在一个特殊的地方,以便始终可以看到,我的意思是用户可以滚动到任何想要的地方,但该面板始终位于其他组件的顶部,并且不会移动.我尝试过这样做,JLayeredPane但我做不到.我该怎么办?
我正在做这个任务,制作一个解决数独的程序.我有一个带有SudokuTextBox网格的面板,扩展了JFormattedTextField.我有一个MaskFormatter,因此每个文本框只接受一个整数.然后在我的面板中,当密钥被释放时,我有这个代码.
public void keyReleased(KeyEvent e) {
SudokuTextBox tb = (SudokuTextBox) e.getSource();
int row = tb.getRow();
int col = tb.getCol();
int value = toInteger(tb.getText());
//System.out.println(value);
if(sudoku.isValid(row, col, value)) {
sudoku.set(row, col, value);
}
else {
sudoku.set(row, col, 0);
tb.setText(null);
}
tb.setCaretPosition(0);
sudoku.print();
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我在文本框中放一个有效的值,然后我回去(由数独的规则),输入无效值的文本框被清除.但是当我向前选项卡时,前一个有效值显示在文本框中.我sudokumatrix包含所有已inputed不明确的价值像它应该这样,只有在相应的文本框中的数字.
当我将"SudokuTextBox扩展JFormattedTextField"更改为"SudokuTextBox extends JTextField"时,它更加令人困惑,它就像一个魅力.但我不能设置JTextField的大小,以便它是正方形,我不能强制每个文本框只有一个整数.
我错过了一些非常明显的东西吗
java ×4
swing ×3
graphics2d ×1
html ×1
jcomponent ×1
jlayeredpane ×1
jscrollpane ×1
jtable ×1
jtextfield ×1
jviewport ×1
keyevent ×1
loading ×1
sudoku ×1