जावा में वाई-अक्ष के साथ बॉक्सलेआउट के केंद्र में कुछ वर्णों को संरेखित करने के साथ एक समस्या प्रतीत होती है। मुझे नहीं पता कि इसका क्या कारण हो सकता है, & मैंने प्रभाव का प्रदर्शन करने के लिए एक एसएससीसीई बनाया है। उदाहरण में, मैं केवल 'ए', & चरित्र का उपयोग करता हूं, मैं प्रत्येक जेपीनेल के प्रत्यक्ष मध्य में एक रेखा खींचता हूं ताकि यह प्रदर्शित किया जा सके कि प्रत्येक मामले केंद्र से कितना दूर है। बोल्ड टेक्स्ट के साथ मामला ठीक से दिखता है, लेकिन सामान्य स्वरूपण & इटालिक्स दोनों सेटऑलिग्मेंटएक्स & सेट होरिज़ोंन्टल एलाइनमेंट का उपयोग करने के बावजूद पूरी तरह से ऑफ-सेंटर हैं। इस प्रभाव को समझने में कोई मदद की सराहना की जाती है।वाई-एक्सिस पर जावा बॉक्सलेआउट में सिंगल अक्षरों का संरेखण ऑफ-सेंटर
किसी भी तरह से समस्या मेरे विशिष्ट कंप्यूटर पर जावा के साथ है, तो यह एक छवि है जब मैं एसएससीसीई चलाता हूं, जो वाई-अक्ष & के साथ बॉक्सलेआउट के साथ तीन अलग जेपीनल लोड करता है केवल चरित्र 'एक' प्रत्येक में साथ JLabel केंद्रित:
यहाँ & SSCCE के लिए कोड है:
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
public class AlignmentTest extends JPanel
{
public AlignmentTest(char label, int style)
{
JLabel l = new JLabel(Character.toString(label));
setBorder(BorderFactory.createLineBorder(Color.BLACK,1));
setBackground(Color.WHITE);
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
setPreferredSize(new Dimension(300,50));
add(Box.createVerticalGlue());
add(l);
l.setFont(l.getFont().deriveFont(style));
l.setAlignmentX(CENTER_ALIGNMENT);
l.setHorizontalAlignment(JLabel.CENTER);
add(Box.createVerticalGlue());
}
public static void main(String[] args)
{
JFrame f = new JFrame("Alignment Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new GridLayout(1,0,5,5));
f.add(new AlignmentTest('a',Font.PLAIN));
f.add(new AlignmentTest('a',Font.BOLD));
f.add(new AlignmentTest('a',Font.ITALIC));
f.pack();
f.setVisible(true);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawLine(getWidth()/2,0,getWidth()/2,getHeight());
}
}
स्पष्टता के लिए, का उपयोग 'style' [नाम] (http://docs.oracle.com/javase/8/docs/api/constant-values.html#java। awt.Font.BOLD)। – trashgod
अच्छा बिंदु, मैंने इसके बारे में नहीं सोचा था। मैंने अब 'शैली' नामों का उपयोग करने के लिए कोड बदल दिया है। इनपुट के लिए धन्यवाद। –