इस के दो भाग हैं:
- अपने घटकों, फोंट, आदि हो रही
- पैमाने पर करने के पैमाने
स्विंग के लिए करने के लिए अपने लेआउट हो रही है, पहले भाग के लिए आसान है - यह सब एक कॉल के साथ शुरू होता है।
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
विंडोज़ पर, यह आपके छोटे/बड़े फोंट (डीपीआई) सेटिंग का सम्मान करेगा।
यहाँ एक त्वरित परीक्षण एप्लिकेशन मैं एक साथ फेंक दिया, प्रदर्शन है कि यह कैसे विंडोज 7 में मेरी मशीन पर लग रहा है @ 96dpi (सामान्य फ़ॉन्ट आकार) और से दो स्क्रीनशॉट हैं @ 144dpi (150%)
पहले डिफ़ॉल्ट फ़ॉन्ट आकार नमूना:
बड़ी (150%) फ़ॉन्ट आकार सेट के साथ
अब:
रनों के बीच कोई कोड परिवर्तन नहीं है, केवल नई डीपीआई सेटिंग्स के साथ & लॉग आउट कर रहा है। मैंने यह निर्धारित करने के उद्देश्य से एक निश्चित फ्रेम आकार निर्धारित किया है कि मेरा कंटेनर आकार में स्केल नहीं कर रहा है, जिससे फिट होने के लिए मेरे लेबल को धक्का दिया गया।
यहाँ मेरी स्रोत कोड है - & पेस्ट में कटौती और यह अपने आप चलाएँ:
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class SwingFontTest
{
private static void createGUI()
{
JButton button = new JButton("my button with Some Text");
JLabel label = new JLabel("and a label");
JPanel panel = new JPanel(new FlowLayout());
panel.add(button);
panel.add(label);
JFrame frame = new JFrame("Title!");
frame.setContentPane(panel);
frame.setSize(300,125);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args)
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run()
{
createGUI();
}
});
}
}
देखो & महसूस डिफ़ॉल्ट आकार की आपूर्ति, लेकिन यह जीयूआई लेखक उनके लेआउट में स्केलेबल इकाइयों का उपयोग करने के पर निर्भर है। यह प्रयास करता है (स्केलेबल लेआउट भी वेबपृष्ठों पर दर्द होता है!), लेकिन यह निश्चित रूप से प्राप्य है।
मैं FormLayout जैसे लेआउट का उपयोग करने की अनुशंसा करता हूं जो आपको डीपीआई के साथ इन पैमाने के रूप में संवाद इकाइयों (डीएलयू) में अपने लेआउट को परिभाषित करने देगा। इससे आप अपने कंटेनरों को आकार में स्केल कर सकेंगे और आकार बदलने के कारण अगली पंक्ति में जाने वाले लेबल जैसे व्यवहारों को सीमित करने में मदद करनी चाहिए। यदि फ्रेम का आकार डायलॉग इकाइयों का उपयोग करके निर्धारित किया गया था तो इसे देखने के लिए बनाया जा सकता है, केवल बड़ा।
देर हो चुकी है - तो यह अभी के लिए है।