请问如何把JProgressBar放进JTable指定的单元格中并动态显示进度状态,请附上代码,谢谢 比如说,把JProgressBar放进JTable的第2行、第2列的单元格中,并且让JProgressBar动起来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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); } } //////////////////////////////////////////////} 初学JAVA 向大牛求教 JAVA初学者,求助!环境设置好了,不能编程序! 初学java 编译无错误 但不出结果 求救 关于vector 中的一个问题 JAVA GUI JAVA中程序重复运行的问题 我找不到一个包的位置,这次丢人了,忘赐教 线程的问题,请各位帮助 关于克隆的问题 这样的机子 还跑不了jbuilder? 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);
}
}
//////////////////////////////////////////////
}