当前位置: 代码迷 >> 综合 >> JavaSwing控件的使用和介绍(一)---JFrame
  详细解决方案

JavaSwing控件的使用和介绍(一)---JFrame

热度:98   发布时间:2023-12-02 16:05:58.0

JavaSwing控件的属性配置和优势

最近学习了有关JavaGUI的相关的知识,个人感觉和Android控件的设置有点类似,可以设置布局,填充数据,以及设置监听事件等等,面对新的API,想通过近期的几篇博客把遇到的问题,和有关JavaGUI新鲜的地方总结下来,和大家共同分享自己的想法和编程的乐趣。

JComponent与AWT的继承关系

在有关JavaGUI的继承关系中有这样的一个原则那就是控件在前容器在后,也就是说容器是作为控件的子类存在的,有关JComponent的继承关系大概是这样的:
java.lang.Object>>java.awt.Component>>java.awt.Container>>javax.swing.JComponent。
熟悉继承关系能进一步的了解各个类之间的关系,同时也方便自己对各个类内部方法调用的理解和认识。

JFrame.getContentPane()自带容器

这个方法返回的是一个JFrame的容器,和其他的容器一样,该容器一样可以进行添加控件设置背景色等操作,不同的是由于是从JFrame中直接拿到的容器所以不需要将该容器往JFrame中进行添加。进行简单的设置和添加控件之后我们就可以按照JFrame的常用步骤进行相关的操作就可以了:

class TestJFrame{public static void main(){JFrame jf=new JFrame("TestJFrame");Container ct=jf.getContentPane();ct.setlayout(new FlowLayout(FlowLayout.LEFT,20,20));JLable hello=new JLabel("你好!");JLabel bye=new JLable("再见");hello.setOpaque(true);hello.setBackground(Color.RED);ct.add(hello);ct.add(bye);ct.setBackground(Color.BLUE);jf.setSize(300,200);jf.setLocation(10,10);jf.addWindowListener(new WindowAdapter(){@overridepublic void windowClosing(WindowEvent e){System.exit(0);}});} 
}

有关AWT.Label中的乱码问题

在使用Label的时候如果我们使用的AWT中的Label控件的话,如果我们在改控件中添加了文字在运行之后就会出现乱码的问题,解决的方案是一方面我们可以在RunConfigurations中设置,另外一个方面就是直接弃用Label而是选择使用Swing下的JLabel,这样的话如果在项目的编码方式中我们选用的是UTF-8那么乱码现象就会消失。

JFrame的两种窗口关闭方式

JFrame窗口的关闭方式目前学到的主要有两种一种是通过调用addWindowListener()方法来实现,另外一种方式就是通过直接调用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)达到关闭窗口的目的。具体编码如下:

public static void main(){JFrame jf=new JFrame("TestClose");//实现方式一jf.addWindowListener(new WindowAdapter(){@overridepublic void windowClosing(WindowEvent e){System.exit(0);}});//实现方式二jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}

总结:

有关JFrame的使用要注意的就是一方面是他自带容器的利用,这个容器无需添加,另外一个方面就是常见的配置流程:在创建对象的时候传入字符串,添加控件,设置大小以及Location,设置窗口的关闭方式,最后通过调用JFram.setVisible(ture)实现Frame的显示。