समस्या JFrame
के साथ नहीं है, समस्या आपके कोड के साथ है। हम क्या गलत है या आप कुछ उदाहरण कोड पोस्ट कर सकते हैं यह अनुमान लगाने के लिए हम अपने बाकी प्राकृतिक जीवन व्यतीत कर सकते हैं।
अब यह आप पर निर्भर है, हम हम सभी को निराशा होती है, तो आप पर गलत अनुमान के बाद गलत अनुमान फेंक करने की कोशिश कर रख सकते हैं, या आप मदद कर सकते हैं हमें आपकी मदद ...
यहां दो उदाहरण मैंने किया है। पहले को JPanel
के प्राथमिक सामग्री के रूप में उपयोग करता है, जहां बच्चे के घटक इस पर रखे जाते हैं। अच्छा और सरल
दूसरा कस्टम JPanel
का उपयोग करता है जो छवि को पृष्ठभूमि की पृष्ठभूमि पर चित्रित करता है। मैं फिर फ्रेम सामग्री फलक को बदलने के लिए इसका उपयोग करता हूं। यह एक छोटे से अधिक शामिल है, लेकिन इसके बारे में आसानी से अद्यतन किया गया अतिरिक्त लाभ (सामग्री फलक की जगह कार्यक्रम के बाकी असर नहीं होगा)
उदाहरण 1 है: JLabel
पृष्ठभूमि
रूप में इस्तेमाल किया
public class TestBackground {
public static final String BACKGROUND_PATH = "/Volumes/Macintosh HD2/Dropbox/MT015.jpg";
public static void main(String[] args) {
new TestBackground();
}
public TestBackground() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Testing");
frame.setLayout(new BorderLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new LabelPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
protected class LabelPane extends JPanel {
public LabelPane() {
BufferedImage bg = null;
try {
bg = ImageIO.read(new File(BACKGROUND_PATH));
} catch (IOException ex) {
ex.printStackTrace();
}
JLabel label = new JLabel(new ImageIcon(bg));
setLayout(new BorderLayout());
add(label);
label.setLayout(new GridBagLayout());
JLabel lblMessage = new JLabel("Look at me!");
lblMessage.setForeground(Color.WHITE);
lblMessage.setFont(lblMessage.getFont().deriveFont(Font.BOLD, 48));
label.add(lblMessage);
}
}
}
उदाहरण 2: छवि पृष्ठभूमि के रूप में प्रयोग किया जाता है, सामग्री फलक की जगह ...
public class TestBackground {
public static final String BACKGROUND_PATH = "/Volumes/Macintosh HD2/Dropbox/MT015.jpg";
public static void main(String[] args) {
new TestBackground();
}
public TestBackground() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Testing");
frame.setLayout(new BorderLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new BackgroundPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
protected class BackgroundPane extends JPanel {
private BufferedImage bg = null;
public BackgroundPane() {
try {
bg = ImageIO.read(new File(BACKGROUND_PATH));
} catch (IOException ex) {
ex.printStackTrace();
}
setLayout(new GridBagLayout());
JLabel lblMessage = new JLabel("Look at me!");
lblMessage.setForeground(Color.WHITE);
lblMessage.setFont(lblMessage.getFont().deriveFont(Font.BOLD, 48));
add(lblMessage);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(1153, 823);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (bg != null) {
g.drawImage(bg, 0, 0, this);
}
}
}
}
क्या आप वाकई स्क्रीन के मिलान से मेल खाते हैं? क्या आप छवि को विस्तार या अनुबंध करने की इजाजत दे रहे हैं? एक [एसएससीई] (http://sscce.org) बनाने और पोस्ट करने पर विचार करें जो हमारे लिए आपकी समस्या का प्रदर्शन करता है। –
'जेएलएबल पृष्ठभूमि = नया जेएलएबल ("नया लेबल"); \t \t background.setIcon (नया ImageIcon (ProgramDriver.class.getResource ("/ चित्र/GB_Blue.jpg")); \t \t background.setBounds (0, 0, 652, 496); \t \t प्राथमिकताएं (पृष्ठभूमि); ' – flyinghigh
कृपया टिप्पणियों में कोड पोस्ट न करें क्योंकि वे अपठनीय के करीब हैं। इसे अपने प्रश्न के संपादन के रूप में पोस्ट करें। लेकिन ऐसा लगता है कि आपके द्वारा पोस्ट किया गया कोड * छवि * का विस्तार नहीं कर रहा है, इसलिए मुझे कोई आश्चर्य नहीं है कि आपके पास सीमा है। इंग्लैंड का जवाब शायद सबसे अच्छा काम करेगा, उसके लिए 1+। –