我正在学习如何用Java创建应用程序。Java JLabel背景色不起作用?
我很难让JLabel具有背景色,而JPanel是白色的,在背后。另外,有没有办法将JPanel的大小调整为JFrame的一半?
任何帮助将非常感激。谢谢。
package PracticeOne;
import java.awt.BorderLayout;
public class PracticeOne {
public static void main(String[] args) {
Frame container = new Frame();
Panel box = new Panel();
Label txt = new Label();
box.add(txt);
container.add(box, BorderLayout.CENTER);
}
}
package PracticeOne;
import javax.swing.JFrame;
public class Frame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
Frame(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500, 500);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setTitle("Testing this out");
}
}
package PracticeOne;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
public class Panel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
public Dimension d = new Dimension(100,100);
Panel(){
this.setSize(d);
this.setAlignmentX(CENTER_ALIGNMENT);
this.setBackground(Color.WHITE);
}
}
package PracticeOne;
import java.awt.Color;
import javax.swing.JLabel;
public class Label extends JLabel {
/**
*
*/
private static final long serialVersionUID = 1L;
Label(){
this.setSize(50, 50);
this.setText("ya boy is working here");
this.setForeground(Color.BLACK);
this.setBackground(Color.ORANGE);
}
}
多大的JPanel,则您所使用 什么布局管理器两件事情 1)确定2)你传递给panel.setPreferredSize的是什么。在某些情况下,根据现有布局,首选尺寸不会产生任何影响。 布局管理器在播放时使用setSize什么都不做。 在你的情况下,因为你使用的是BorderLayout,并且只把一些东西放在CENTER中,JPanel会增长到窗口的全部大小。如果您希望框架是面板首选大小的大小,您可能需要考虑使用JFrame.pack而不是setSize。 – MeBigFatGuy