JAVA技术及其应用实验七(GUI编程之常用组件与布局)


【实验名称】 实验七
【实验内容】

1、基本控件布局

在这里插入图片描述

package one;
import javax.swing.*;
import static javax.swing.JFrame.*;
import java.awt.*;

class MyJFrame extends JFrame{
	MyJFrame(String s,int x,int y,int w,int h){
		setTitle(s);
		setBounds(x,y,w,h);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
}

public class JButtonDome{
	public static void main(String[] args) {
		MyJFrame myJFrame=new MyJFrame("FlowLayout Demo",100,100,300,100);
		myJFrame.setLayout(new FlowLayout());
		myJFrame.setVisible(true);
		
		JButton button1=new JButton("北");
		myJFrame.add(button1);
		JButton button2=new JButton("东");
		myJFrame.add(button2);
		JButton button3=new JButton("西");
		myJFrame.add(button3);
		JButton button4=new JButton("南");
		myJFrame.add(button4);
		JButton button5=new JButton("中");
		myJFrame.add(button5);
		myJFrame.pack();
	}
}

【实验结果】
在这里插入图片描述

2、基本空间布局

在这里插入图片描述

package two;
import javax.swing.*;
import static javax.swing.JFrame.*;
import java.awt.*;

public class MyJFrame extends JFrame{
	MyJFrame(String s,int x,int y,int w,int h){		
		setTitle(s);
		setBounds(x,y,w,h);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyJFrame myJFrame = new MyJFrame("BorderLayoutDome",100,100,160,130);
		myJFrame.setLayout(new BorderLayout());
		myJFrame.setVisible(true);
		
		JButton button1 = new JButton("北");
		JButton button2 = new JButton("南");
		JButton button3 = new JButton("中");
		JButton button4 = new JButton("西");
		JButton button5 = new JButton("东");
		myJFrame.add(button1,BorderLayout.NORTH);
		myJFrame.add(button2,BorderLayout.SOUTH);
		myJFrame.add(button3,BorderLayout.CENTER);
		myJFrame.add(button4,BorderLayout.WEST);
		myJFrame.add(button5,BorderLayout.EAST);
		myJFrame.pack();
	}
}

【实验结果】
在这里插入图片描述

3、菜单基本操作

在这里插入图片描述

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

public class Test
{
    public static void main(String args[])
    {
        MyJFrame myJFrame = new MyJFrame("带菜单的基本操作", 100, 100, 300300);
        myJFrame.setLayout(new BorderLayout());
        JMenuBar jMenuBar = new JMenuBar();

        JMenu file = new JMenu("file");
        file.add(new JMenuItem("open"));
        file.add(new JMenuItem("close"));
        file.add(new JMenuItem("exit"));
        file.addSeparator();

        JMenu edit = new JMenu("edit");
        edit.add(new JMenuItem("copy"));

        JMenu find_and_replacer = new JMenu("find and replace");
        find_and_replacer.add(new JMenuItem("find"));
        find_and_replacer.add(new JMenuItem("replace"));
        edit.add(find_and_replacer);

        jMenuBar.add(file);
        jMenuBar.add(edit);
        myJFrame.add(jMenuBar, BorderLayout.NORTH);
        JPanel jPanelp = new JPanel();
        jPanelp.setSize(200, 200);
        myJFrame.add(jPanelp, BorderLayout.SOUTH);
        myJFrame.pack();
        myJFrame.setVisible(true);
    }
}

【实验结果】
在这里插入图片描述

4、嵌套布局

在这里插入图片描述

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

class MyJPanel extends JPanel
{
    MyJPanel(Color c)
    {
        setBackground(c);
    }
}

public class Forth {
    public static void main(String args[])
    {
        MyJFrame myJFrame = new MyJFrame("JPanel Demo", 300, 300, 300, 300);
        myJFrame.setLayout(new GridLayout(5, 1));
        myJFrame.add(new MyJPanel(Color.red));
        myJFrame.add(new MyJPanel(Color.orange));
        myJFrame.add(new MyJPanel(Color.yellow));
        myJFrame.add(new MyJPanel(Color.green));
        myJFrame.add(new MyJPanel(Color.blue));
        myJFrame.pack();
        myJFrame.setVisible(true);
    }
}

【实验结果】
在这里插入图片描述

5、CardLayout布局练习

在这里插入图片描述

package Fifth;

import javax.swing.*;
import static javax.swing.JFrame.*;
import java.awt.*;
class MyJFrame extends JFrame{

   MyJFrame(String s,int x,int y,int w,int h){
      setTitle(s);
      setBounds(x,y,w,h);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
   }

   public static void main(String args[]){
      MyJFrame myJFrame=new MyJFrame("CardLayout Demo",100,100,500,500);
      JPanel panel1=new JPanel();
      panel1.setLayout(new CardLayout());
      panel1.setBackground(Color.red);
      JPanel panel2=new JPanel();
      myJFrame.add(panel1,BorderLayout.CENTER);
      myJFrame.add(panel2,BorderLayout.SOUTH);
      String[] names = {"第一张" , "第二张" , "第三张" , "第四张" , "第五张"};
      JLabel label;
      for (int i = 0 ; i < names.length ; i++){
         label=new JLabel(names[i],SwingConstants.CENTER);
         label.setFont(new Font("宋体",Font.PLAIN,28));
         panel1.add(names[i],label);
      }
      JButton button1=new JButton("上一张");
      JButton button2=new JButton("下一张");
      JButton button3=new JButton("第一张");
      JButton button4=new JButton("最后一张");
      panel2.add(button1);
      panel2.add(button2);
      panel2.add(button3);
      panel2.add(button4);
      myJFrame.setVisible(true);
   }
}

【实验结果】
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值