لا يتم عرض صورة خلفية JXTable
سؤال
أحاول إنشاء JXTable مع صورة خلفية (سيكون النص جيدًا أيضًا).هذه هي فئة JXTable الموسعة الخاصة بي:
public class JXTableWithBackground extends JXTable{
ImageIcon image;
public JXTableWithBackground(ParticipantTableModel pTableModel, ImageIcon image){
super(pTableModel);
this.image=image;
}
public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
Component c = super.prepareRenderer( renderer, row, column);
// We want renderer component to be transparent so background image is visible
if( c instanceof JComponent )((JComponent)c).setOpaque(false);
return c;
}
@Override
public void paint(Graphics g) {
//draw image in centre
final int imageWidth = image.getIconWidth();
final int imageHeight = image.getIconHeight();
final Dimension d = getSize();
final int x = (d.width - imageWidth)/2;
final int y = (d.height - imageHeight)/2;
g.drawImage(image.getImage(), x, y, null, null);
super.paint(g);
}
الصورة لم تظهر، لا أرى سوى مساحة بيضاء.اي فكرة؟
المحلول
للحصول على مرجع في المستقبل:
يبدو أن المشكلة هي أن الجدول نفسه لم يتم تقديمه بشفافية.تعيين الجدول نفسه إلى Opaque= Walse يساعد.
نصائح أخرى
ل SwingX
الطريقة الموصى بها على سبيل المثال لاستخدام مكون غير شفاف للعرض هي استخدام Highlighter
واجهه المستخدم.لذلك بدلاً من تجاوز prepareRenderer
الطريقة، فمن المستحسن أن تكتب الخاص بك Highlighter
واستخدام JXTable#setHighlighters
طريقة وضعها على الطاولة
لا تنتمي إلى StackOverflow