有个问题想问一下大家..关于java Swing的几个问题
public class GameWindow{
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setUndecorated(true); //去掉窗体装饰
jFrame.setSize(300, 200);
jFrame.setLocation(300, 200);
JPanel jPanel = new JPanel();
jPanel.setBackground(Color.BLUE);
JButton jLabel = new JButton();
jLabel.setBackground(Color.CYAN);
jPanel.add(jLabel);
jFrame.add(jPanel);
jFrame.setVisible(true);
}
}最近我在写个窗体,也是刚学到Swing这块吧,学艺不精,但是想通过小的项目提升下自己,我要实现的窗体要求标题栏都要进行美化,并且用自己的关闭按钮和最小化按钮,所以我只能把窗体装饰去了..然后自己写事件进行响应
我在Frame里面放了Panel,然后想在Panel里面放一个Label标签当做标题栏,并且对其进行鼠标响应..但是问题就出来了..Label标签竟然不能设置背景色..要是把Label改成Button就可以了..但是这个就要用Label实现啊..我就很郁闷了..希望大家解答下为什么定义jLabel为JLabel类就不行,而定义为JButton就可以..还有一事相求..为什么我显示的Button就位于窗体中上方一丁点儿呢..我设置size也不管用..求救啊...
public class GameWindow{
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setUndecorated(true); //去掉窗体装饰
jFrame.setSize(300, 200);
jFrame.setLocation(300, 200);
JPanel jPanel = new JPanel();
jPanel.setBackground(Color.BLUE);
JButton jLabel = new JButton();
jLabel.setBackground(Color.CYAN);
jPanel.add(jLabel);
jFrame.add(jPanel);
jFrame.setVisible(true);
}
}最近我在写个窗体,也是刚学到Swing这块吧,学艺不精,但是想通过小的项目提升下自己,我要实现的窗体要求标题栏都要进行美化,并且用自己的关闭按钮和最小化按钮,所以我只能把窗体装饰去了..然后自己写事件进行响应
我在Frame里面放了Panel,然后想在Panel里面放一个Label标签当做标题栏,并且对其进行鼠标响应..但是问题就出来了..Label标签竟然不能设置背景色..要是把Label改成Button就可以了..但是这个就要用Label实现啊..我就很郁闷了..希望大家解答下为什么定义jLabel为JLabel类就不行,而定义为JButton就可以..还有一事相求..为什么我显示的Button就位于窗体中上方一丁点儿呢..我设置size也不管用..求救啊...
label.setForeground(Color.blue);
label.setBackground(Color.red);
label.setOpaque(true);当然估计很难看...至于说到button的位置,lz先要自学一下swing的布局管理器,一共八种,是swing里设置内部控件布局的类。默认的(也就是你的代码中没做特别声明的)是FlowLayout。不过这个讲起来就话长了...先找点资料看看比较好...另外提醒LZ
JButton jLabel = new JButton();
这种命名方式不太好,在你调用jLabel时会造成误解以为是JLabel对象。最好什么类型就给什么名字。
衣服混搭可能很漂亮,代码混搭可就比较抓狂了...
import java.awt.*;
import javax.swing.*;public class GameWindow{
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setUndecorated(true); //去掉窗体装饰
jFrame.setSize(300, 200);
jFrame.setLocation(300, 200);
JPanel jPanel = new JPanel();
jPanel.setBackground(Color.BLUE);
JLabel jLabel = new JLabel();
jLabel.setBounds(0, 0, 300, 28);
jLabel.setBackground(Color.CYAN);
jLabel.setOpaque(true);//不透明
jPanel.add(jLabel);
jPanel.setLayout(null);//取消布局
jFrame.add(jPanel,BorderLayout.CENTER);//居中铺满,也可以取消布局,用上面setBounds的方式设置固定大小。
jFrame.setVisible(true);
}
}
多看看API吧。
多看看文档吧。
多看看文档吧。