zoukankan      html  css  js  c++  java
  • Swing

    3、Swing

    3.1 窗口、面板
    package com.wang.swing.jframe;

    import javax.swing.*;
    import java.awt.*;

    //
    public class JFrameDemo01 {

       //现在窗口是被初始化出来的,要有init方法
       public void init(){
           //顶级窗口
           JFrame jFrame = new JFrame("这是一个JFrame窗口");
           jFrame.setVisible(true);
           jFrame.setBounds(100,100,200,200);

           JLabel jLabel = new JLabel("欢迎学java");
           jFrame.add(jLabel);

           //关闭事件 已经写好的方法
           jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      }
       public static void main(String[] args) {
           //建立一个窗口
           new JFrameDemo01().init();

           new MyJFrame().init();
      }
    }
    class MyJFrame extends JFrame{
       public void init(){
           this.setBounds(10,10,200,300);
           this.setVisible(true);
           //获得容器
           Container contentPane = this.getContentPane();
           contentPane.setBackground(Color.green);

           //设置文字 JLabel
           JLabel jLabel = new JLabel("欢迎学java");
           this.add(jLabel);

           //让文本标签居中
           jLabel.setHorizontalAlignment(SwingConstants.CENTER);
      }
    }
    3.2 弹窗
    package com.wang.swing.dialog;

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    //主窗口
    public class DialogDemo01 extends JFrame {
       public static void main(String[] args) {
           new DialogDemo01().init();
      }
       //JFrame要写init方法
       public void init(){
           this.setVisible(true);
           this.setSize(700,500);

           //关闭事件
           this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

           //JFrame中放东西需要容器
           Container container = this.getContentPane();
           //绝对布局
           container.setLayout(null);

           //需要按钮
           JButton jButton = new JButton("点击弹出对话框");
           jButton.setBounds(30,30,200,50);

           //点击按钮的时候,弹出弹窗,所以需要监听事件
           jButton.addActionListener(new ActionListener() {//监听器
               @Override
               public void actionPerformed(ActionEvent e) {
                   //弹窗
                   new MyDialog();
              }
          });

           container.add(jButton);
      }
    }

    //弹窗的窗口,弹窗也是一个新的 窗口
    class MyDialog extends JDialog{
       public MyDialog(){
           this.setVisible(true);
           this.setBounds(100,100,500,500);
           //默认有关闭事件,不需要写 会报错 多余

           Container container = this.getContentPane();
           //container.setLayout(null); 有这句时"一起学java"显示不出来,原因??

           container.add(new JLabel("一起学java"));
      }
    }
    3.3 标签

    label

    图标 ICON

    package com.wang.swing.lable;

    import javax.swing.*;
    import java.awt.*;

    //图标是接口,需要实现类,是一个弹窗,所以要继承JFrame
    public class IconDemo extends JFrame implements Icon {

       private int width;
       private int height;
       public IconDemo(){
           //无参构造
      }
       public IconDemo(int width,int height){
           this.width=width;
           this.height=height;
      }
       public static void main(String[] args) {
           new IconDemo().init();
      }

       public void init(){
           //类初始化
           IconDemo iconDemo = new IconDemo(15, 15);

           //图标放在标签上,也可以放在按钮上
           JLabel jLabel = new JLabel("icontest", iconDemo, SwingConstants.CENTER);

           //标签要用要放进容器
           Container container = getContentPane();
           container.add(jLabel);

           this.setVisible(true);
           this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      }

       @Override
       public void paintIcon(Component c, Graphics g, int x, int y) {
           g.fillOval(x,y,width,height);
      }

       @Override
       public int getIconWidth() {
           return this.width;
      }

       @Override
       public int getIconHeight() {
           return this.height;
      }
    }

    图片ImageIcon

    package com.wang.swing.lable;

    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;

    public class ImageIconDemo extends JFrame {

       public ImageIconDemo(){
           //获取图片地址 通过类获取当前类下资源
           JLabel jLabel = new JLabel("ImageIcon");
           URL url = ImageIconDemo.class.getResource("tx.jpg");

           ImageIcon imageIcon = new ImageIcon(url);

           jLabel.setIcon(imageIcon);
           //居中显示
           jLabel.setHorizontalAlignment(SwingConstants.CENTER);

           //获得容器
           Container container = getContentPane();
           container.add(jLabel);

           setVisible(true);
           setBounds(100,100,500,300);
           setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      }
       public static void main(String[] args) {
           new ImageIconDemo();
      }
    }
    3.4 面板

    JPanel

    package com.wang.swing.jpanel;

    import javax.swing.*;
    import java.awt.*;

    public class JPanelDemo extends JFrame {

       public JPanelDemo(){
           //所有东西要放在container中,获得container
           Container container = this.getContentPane();

           //container设置容器的样子 表格布局 后两个参数为每个面板之间的间距
           container.setLayout(new GridLayout(2,1,10,10));

           JPanel jPanel1 = new JPanel(new GridLayout(1,3));
           JPanel jPanel2 = new JPanel(new GridLayout(1,2));
           JPanel jPanel3 = new JPanel(new GridLayout(2,1));
           JPanel jPanel4 = new JPanel(new GridLayout(3,2));

           jPanel1.add(new JButton("jButton1-1"));
           jPanel1.add(new JButton("jButton1-2"));
           jPanel1.add(new JButton("jButton1-3"));
           jPanel2.add(new JButton("jButton2-1"));
           jPanel2.add(new JButton("jButton2-1"));
           jPanel3.add(new JButton("jButton3-1"));
           jPanel3.add(new JButton("jButton3-2"));
           jPanel4.add(new JButton("jButton4-1"));
           jPanel4.add(new JButton("jButton4-2"));
           jPanel4.add(new JButton("jButton4-3"));
           jPanel4.add(new JButton("jButton4-4"));
           jPanel4.add(new JButton("jButton4-5"));
           jPanel4.add(new JButton("jButton4-6"));

           container.add(jPanel1);
           container.add(jPanel2);
           container.add(jPanel3);
           container.add(jPanel4);

           this.setVisible(true);
           this.setSize(500,500);
           this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      }

       public static void main(String[] args) {
           new JPanelDemo();
      }
    }

    JScrollPanel 边框

    package com.wang.swing.jpanel;

    import javax.swing.*;
    import java.awt.*;

    public class JScrollPanelDemo extends JFrame {

       public JScrollPanelDemo(){

           Container container = this.getContentPane();

           //文本域
           JTextArea jTextArea = new JTextArea(20,50);//每一行写20个
           jTextArea.setText("欢迎学习java");

           //用Scroll面板
           JScrollPane jScrollPane = new JScrollPane(jTextArea);
           container.add(jScrollPane);
           
           this.setVisible(true);
           this.setBounds(100,100,500,300);
           this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      }

       public static void main(String[] args) {
           new JScrollPanelDemo();
      }
    }
  • 相关阅读:
    .NET牛人应该知道些什么
    ASP.NET常用的分页
    获取字符串长度
    去掉网页的滚动条
    GridView动态生成字段常见问题及解决方法
    PagesSection.ValidateRequest 属性
    我刚刚做了一个艰难的决定
    Jquery UI Dialog 对话框学习
    c语言病毒分析(转)
    不用不熟悉的工具和方法
  • 原文地址:https://www.cnblogs.com/wyj96/p/12057216.html
Copyright © 2011-2022 走看看