In der folgenden Abbildung sehen Sie eine JTable
mit zwei Spalten.in JTable Abstand zwischen Bildern entfernen
UPDATE
** Die Spalten sind ausgeblendet. Das Rot hinter der ausgewählten Zeile ist
Hintergrundfarbe rot nur für Demonstrationszwecke. **
Jede Zeile hat zwei Bilder.
Das erste Bild ist ein PNG-Bild, das wie ein Kontrollkästchen aussieht. Gefolgt von
ein PNG-Bild, auf dem der Name des Freundes geschrieben wird.
Die Bilder sollten wie ein Bild aussehen, aber es gibt ein Leerzeichen.
Ist es möglich, diesen Raum zu entfernen?
Die Bilder haben nicht den Raum
Vielleicht ist es nicht möglich mit JTable
.
In diesem Fall, was andere Swing "Liste" kann dies tun.
Der Code, der die Tabelle
jTableSpriidFriends = new JTable();
jTableSpriidFriends.setRowMargin(0);
jTableSpriidFriends.setIntercellSpacing(new Dimension(0, 0));
jTableSpriidFriends.setShowHorizontalLines(false);
jTableSpriidFriends.setShowVerticalLines(false);
jTableSpriidFriends.setShowGrid(false);
m_adapterSpriidFriends = new AbstractTableModelJTableSpriidFriends();
rendererSpriidFriends = new CellRendererJtableSpriidFriends();
jTableSpriidFriends.setModel(m_adapterSpriidFriends);
jTableSpriidFriends.setDefaultRenderer(ImageIcon.class,
rendererSpriidFriends);
jTableSpriidFriends.setRowSelectionAllowed(true);
jTableSpriidFriends.addMouseListener(this);
jTableSpriidFriends.getSelectionModel().addListSelectionListener(this);
jTableSpriidFriends.setTableHeader(null);
scrollPaneSpriidFriends = new JScrollPane();
scrollPaneSpriidFriends.setBounds(11, 55, 176, 264);
panelSpriid.add(scrollPaneSpriidFriends);
scrollPaneSpriidFriends.setViewportView(jTableSpriidFriends);
for (int i=0; i<m_adapterSpriidFriends.getColumnCount(); i++) {
TableColumn column = jTableSpriidFriends.getColumnModel().getColumn(i);
if (i==0) column.setPreferredWidth(50);
if (i==1) column.setPreferredWidth(120);
}
hier die DefaultTableCellRenderer
case 0:// type
if(friend.selected){
image = new ImageIcon(getClass().getResource
("/resources/friendlist/checkbox_checked.png")).getImage();
this.setIcon(new ImageIcon(image));
}else{
image = new ImageIcon(getClass().getResource("/resources
/friendlist/checkbox_unchecked.png")).getImage();
this.setIcon(new ImageIcon(image));
}
break;
case 1:// files
BufferedImage old = null;
try {
if(friend.deviceType.equals(Consts.DEVICE_TYPE_DEVICE))
old = ImageIO.read(getClass().getResource
("/resources/friendlist/row_with_device.png"));
else
old = ImageIO.read(getClass().getResource
("/resources/friendlist/row_with_pc.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int w = old.getWidth();
int h = old.getHeight();
BufferedImage img = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
g2d.drawImage(old, 0, 0, null);
g2d.setPaint(Color.WHITE);
//g2d.setFont(new Font("Serif", Font.BOLD, 20));
String s = friend.name;
FontMetrics fm = g2d.getFontMetrics();
int x = 10 ;
int y = 20;
g2d.drawString(s, x, y);
g2d.dispose();
this.setIcon(new ImageIcon(img));
break;
}
Haben Sie versucht, 'myTable.setShowVerticalLines (false);'? Überprüfen Sie auch 'JTable.setIntercellSpacing (Dimension intercellSpacing)'. – Torious
Die setShowVerticalLines wurde bereits auf false gesetzt, aber der setIntercellSpacing wurde vergessen. setIntercellSpacing (neue Dimension (0, 0)); .... macht keinen Unterschied. – Erik
für bessere Hilfe schneller bearbeiten Sie Ihre Frage mit einem [SSCCE] (http://sscce.org/), für Symbole können Sie einfach verwenden 'UIManager.getIcon (" OptionPane.questionIcon ")' – mKorbel