तुम सच में स्ट्रिंग की लंबाई (और न ही किसी विशेष फ़ॉन्ट/मीट्रिक के लिए अपनी मैपिंग) में कोई दिलचस्पी नहीं कर रहे हैं। आप renderingComponent के पसंदीदा आकार में रूचि रखते हैं जो सेल सामग्री प्रस्तुत करता है। सभी पंक्तियों के माध्यम से कि, पाश हो और आकार, कुछ
तरह
int width = 0;
for (row = 0; row < table.getRowCount(); row++) {
TableCellRenderer renderer = table.getCellRenderer(row, myColumn);
Component comp = table.prepareRenderer(renderer, row, myColumn);
width = Math.max (comp.getPreferredSize().width, width);
}
क्वेरी या JXTable का उपयोग करें (SwingX परियोजना में) करने के लिए: यह एक तरीका है पैक(), जो आप के लिए काम करता है है :-)
संपादित करें: टेबल की तैयारी को प्राथमिकता देने का कारण रेंडरर को मैन्युअल रूप से कॉल करने के लिए रेंडरर पर कॉम्पोनेंट है यह है कि तालिका प्रतिपादन कॉम्पोनेंट के दृश्य गुणों को सजाने में सक्षम हो सकती है। यदि उन सजावट घटक के prefSize को प्रभावित करते हैं, तो एक मैन्युअल कॉन्फ़िगरेशन बंद है।
का निर्धारण करने tableColumn.getWidth() = tableColumn.getPreferredWidth() में हेडर के लिए मैन्युअल रूप से तैयारी कर रहा – kleopatra
ग्रेट उत्तर जैसा ही है, मैं इस सवाल को स्ट्रिंग लम्बाई के साथ लागू कर रहा था जब मुझे यह प्रश्न मिला। लेकिन क्या आपको पता है कि स्तंभ नाम की लंबाई पर विचार कैसे करें? –
ठीक है, अभी पता चला है कि एक विधि 'getHeaderRenderer() ' –