1
1
package com .jackyoustra .kautoload ;
2
2
3
3
import java .awt .Component ;
4
+ import java .awt .Dimension ;
5
+ import java .awt .Image ;
6
+ import java .awt .geom .AffineTransform ;
7
+ import java .awt .image .AffineTransformOp ;
4
8
import java .awt .image .BufferedImage ;
5
9
import java .io .File ;
6
10
import java .io .IOException ;
15
19
import javax .swing .table .TableCellRenderer ;
16
20
import javax .swing .table .TableModel ;
17
21
18
- public class DownloadTable extends JTable {
22
+ import org . imgscalr . Scalr ;
19
23
24
+ public class DownloadTable extends JTable {
20
25
21
26
private static class ProgressRenderer extends DefaultTableCellRenderer {
22
27
private static BufferedImage image ;
23
28
private final JProgressBar progressBar = new JProgressBar (0 , 100 );
24
- private final JLabel imageLabel = new JLabel ( new ImageIcon ( image )) ;
29
+ private final JLabel imageLabel ;
25
30
static {
26
31
try {
27
32
image = ImageIO .read (new File ("src" + File .separator + "assets" + File .separator + "uiactivityindicator_intro.png" ));
@@ -30,10 +35,17 @@ private static class ProgressRenderer extends DefaultTableCellRenderer {
30
35
}
31
36
}
32
37
33
- public ProgressRenderer () {
38
+ public ProgressRenderer (Dimension dimensions ) {
34
39
super ();
35
40
setOpaque (true );
41
+ int smallest = dimensions .width ;
42
+ if (dimensions .width > dimensions .height ){
43
+ smallest = dimensions .height ;
44
+ }
45
+ BufferedImage scaled = Scalr .resize (image , smallest );
46
+ imageLabel = new JLabel (new ImageIcon (scaled ));
36
47
progressBar .setBorder (BorderFactory .createEmptyBorder (1 , 1 , 1 , 1 ));
48
+ imageLabel .setBorder (BorderFactory .createEmptyBorder (1 , 1 , 1 , 1 ));
37
49
}
38
50
39
51
@ Override
@@ -58,7 +70,6 @@ else if(value instanceof Integer){
58
70
}
59
71
}
60
72
61
-
62
73
public DownloadTable () {
63
74
super ();
64
75
}
@@ -70,7 +81,7 @@ public DownloadTable(TableModel dm) {
70
81
@ Override
71
82
public TableCellRenderer getCellRenderer (int row , int column ) {
72
83
if (column == getModel ().getColumnCount ()-1 ){
73
- return new ProgressRenderer ();
84
+ return new ProgressRenderer (new Dimension ( this . getColumnModel (). getColumn ( column ). getWidth (), getRowHeight ()) );
74
85
}
75
86
return super .getCellRenderer (row , column );
76
87
}
0 commit comments