0
我正在嘗試構建一個窗口,其中一個圖片覆蓋了屏幕。圖片是JLabel,窗口是JFrame。在嘗試了無數種方法並查找了幾個小時的教程之後,我還沒有想出如何做到這一點。我同意,這是一個非常簡單的問題,但我根本不明白我該如何解決這個問題。這裏是我的代碼,我已經試過(我註釋掉了一些事情,我之前試過):構建簡單窗口時出錯?
package Buttons;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.GridLayout;
public class Mewindow extends JFrame {
private JFrame mewindow;
private JLabel mepic = new JLabel(new ImageIcon("me.png"));
public Mewindow() {
super("Here is a picture of ME!");
mewindow.setLayout(new GridLayout(1, 0, 0, 0));
// Icon me = new ImageIcon(getClass().getResource("me.png"));
add(mepic);
mewindow.setVisible(true);
mewindow.setSize(250, 250);
mewindow.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}
謝謝你這麼多,你正在閱讀這篇文章的時候,我真的很感謝你的投入幫助的努力一位程序員!
謝謝,這是非常好的解釋。我想我應該直接將圖像放入JLabel本身!你是什麼意思「不要直接從JFrame進行擴展,而是使用JPanel,然後將其添加到JFrame的實例,你的代碼將更加可重用」?另外,我的圖像並沒有填滿整個窗口,爲什麼?雖然......可能是圖像本身? –
通常不鼓勵從頂級容器擴展,因爲它會將您鎖定到單個用例中,而且您並沒有真正爲課程添加任何新功能。它還帶有一些其他管理問題,最好留給實施。 'JLabel'不會縮放圖像,事實上,沒有Swing組件,相反,你需要自己實現這個功能 – MadProgrammer
看看[這個例子](http://stackoverflow.com/questions/14548808/scale-the-imageicon-automatically-to-label-size/14553003#14553003)和[this example](http://stackoverflow.com/questions/11959758/java-maintaining-aspect-ratio-of-jpanel-background -image/11959928#11959928)和[this example](http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java/14116752#14116752) – MadProgrammer