比如说,把JProgressBar放进JTable的第2行、第2列的单元格中,并且让JProgressBar动起来
解决方案 »
- byte型异或出的问题,算的值不对啊
- 多线程问题?
- 如何实现ProgressBar随进度颜色改变
- 如何解决入口点的调用麻烦?
- Java初学者应该看哪些书, 欢迎大家推荐好书!
- 怎么把一个Socket服务端的输出流结束(服务端与客户端双向通信问题),即避免客户端阻塞.
- 有什么好的ECLIPSE的网上教程或者教材给推荐一下,谢谢了
- 读取html文件
- 请教Unicode的编码格式
- 请问Java TM Programming Language中的TM(在Java的右角上)是什么意思啊?
- AbstractTableModel重写
- java中利用HttpURLConnection进行下载,如何才可以获得较快的下载速度?
import java.awt.BorderLayout;
import java.awt.Component;import javax.swing.JProgressBar;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;public class NewJFrame extends javax.swing.JFrame implements Runnable {
private JTable tab;
private JProgressBar progress; public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
NewJFrame inst = new NewJFrame();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
//////////////////////////////////////////////
new Thread(inst).start();
//////////////////////////////////////////////
}
});
} public NewJFrame() {
super();
initGUI();
} private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
TableModel tabModel = new DefaultTableModel(new String[][] {
{ "One", "Two" }, { "Three", "Four" } }, new String[] {
"Column 1", "Column 2" });
tab = new JTable() {
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
if (row == 1 && column == 1) {
return new TableCellRenderer() {
public Component getTableCellRendererComponent(
JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
//////////////////////////////////////////////
if(value.getClass().getName().equals("java.lang.String"))
value = new Integer("0");
//////////////////////////////////////////////
progress = getProgress();
progress.setMinimum(0);
progress.setMaximum(100);
progress.setValue(0);
progress.setStringPainted(true);
//////////////////////////////////////////////
progress.setValue((Integer)value);
//////////////////////////////////////////////
return progress;
};
};
} else {
return super.getCellRenderer(row, column);
}
}
};
getContentPane().add(tab, BorderLayout.CENTER);
tab.setModel(tabModel);
}
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
} private JProgressBar getProgress() {
if (progress == null) {
progress = new JProgressBar();
}
return progress;
} //////////////////////////////////////////////
public void run() {
for (int i = 1; i <= 100; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
tab.getModel().setValueAt(i, 1, 1);
}
}
//////////////////////////////////////////////
}