import javax.swing.*;
import java.awt.event.*;
import java.awt.*; class TouChaCol{
JFrame frame;
JLabel label; public static void main(String [] args){
TouChaCol ch = new TouChaCol();
ch.go();
} class LabelActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
label.setText("fuck you click me");
}
} class ColorActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
frame.repaint();
}
} public void go(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Panel panel = new Panel(); label = new JLabel("yoooyo helllo who are you");
JButton button1 = new JButton("change the color");
button1.addActionListener(new ColorActionListener()); JButton button2 = new JButton("change the label");
button2.addActionListener(new LabelActionListener()); frame.getContentPane().add(BorderLayout.SOUTH,button1);
frame.getContentPane().add(BorderLayout.EAST,button2);
frame.getContentPane().add(BorderLayout.WEST,label);
frame.getContentPane().add(BorderLayout.CENTER,panel); frame.setSize(700, 700);
frame.setVisible(true);
}
}

View TouChaCol

import javax.swing.*;
import java.awt.*;
public class Panel extends JPanel{
public void paintComponent(Graphics g){
g.fillRect(0, 0, this.getWidth(), this.getHeight());
int red = (int)(Math.random() * 255);
int green = (int)(Math.random() * 255);
int blue = (int)(Math.random() * 255);
Color myColor = new Color(red,green,blue);
g.setColor(myColor);
g.fillOval(70,70, 100, 100);
}
}

View class Panel

在Panel(继承自JPanel)类中方法paintComponent()

fillRect(0,0,this.width,this.height)表示在该panel的(x,y)坐标为起始,this.width和this.height也表示该面板的宽高

需要作出改变的组件,放做全局

在go中有代码:

button1.addActionListener(new ColorActionListener());

button2.addActionListener(new LabelActionListener());

在外部类对象中新建的内部类对象会与该外部类对象产生联结,内部类对象可直接调用外部类对象的实例变量,也因此,需要改变的组件做实例变量也是为了给内部对象使用

BoarderLayout.CENTER 这个中间是相对于其他组件而言的,当其左边的组件变小时,他可能会变大

在一个frame设置四个组件的更多相关文章

  1. 开发教程(四) MIP组件平台使用说明

    组件审核平台用于上传 MIP 组件.经过自动校验之后,提交审核,通过审核的组件会定时推送到线上,供网站使用. 平台地址:https://www.mipengine.org/platform/ 1. 使 ...

  2. 一个区域只能放置一个组件,如果想在一个区域放置多个组件就需要使用Panel来装载

    五种布局管理器: Flow Layout(流式布局):按照组件添加到容器中的顺序,顺序排放组件位置.默认为水平排列,如果越界那么会向下排列.排列的位置随着容器大小的改变而改变. Panel默认的布局管 ...

  3. Bootstrap入门(十四)组件8:媒体对象

    Bootstrap入门(十四)组件8:媒体对象 这是一个抽象的样式,用以构建不同类型的组件,这些组件都具有在文本内容的左或右侧对齐的图片(就像博客评论或 Twitter 消息等). 1.基本样式 2. ...

  4. 在一个没有设置宽高的容器中,为什么设置position:absolute后就可以全屏显示了?

    此场景适用于移动端百分比布局,背景全屏显示. 在一个没有设置宽高的容器中设置背景,想要背景全屏显示,设置bcakground-size:100%;后还需设置position:absolut; 原因: ...

  5. 网卡最大传输单位MTU和巨型帧(Jumbo frame)设置

    1. 背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 80 ...

  6. C# Winform 按回车键查找下一个可设置焦点的组件

    private void frmLogin_KeyPress(object sender, KeyPressEventArgs e) { //按回车键查找下一个可设置焦点的组件. if (e.KeyC ...

  7. Java基础 awt Frame 设置窗体的大小 位置 可见性

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  8. 如何优雅的设置UI库组件的属性?

    UI库提供了很多组件,组件又带有很多属性,有一些常用属性我们可以记住并且手撸,但是有些不常用的属性,或者需要设置多个属性,这样的情况下写起来就麻烦了,有时候还要打开帮助文档看看属性是怎么设定的,需要设 ...

  9. day 71 crm(8) 权限组件的设置,以及权限组件的应用

    ---恢复内容开始--- 前情提要: strak 组件是增删改查组件 , 生活中,需求权限组件,  不足: 1,前后端不分离,   2, 空url也会刷新界面,造成资源浪费   3,如果角色忘记设置权 ...

随机推荐

  1. Android(digest)

    Android开发者文档这么说的: Content providers manage access to a structured set of data. They encapsulate the ...

  2. Bayesian Formulation on Cooperative Tracking

    Suppose a joint state representing a set of \(N_{n}\) nodes moving in a field\[    \textbf{X}=    \b ...

  3. lamp apache配置虚拟主机

    You don't have permission to access /index.php on this server

  4. TX enqueue DRM

  5. linux(边压缩边传输边解压)

    比如我要转移旧VPS /home/wwwroot 下的web目录到新VPS(123.123.123.123)的/home/wwwroot 目录下   1.进入目录 cd /home/wwwroot  ...

  6. iframe 标签自适应高度和宽度

    iframe 结构如下 <iframe src="index.html" id="frame" frameborder="0" scr ...

  7. 微信小程序 app.json 配置

    我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包含了所有配置选项的简单配置app.json : { " ...

  8. hdu 4496 D-City(并查集)

    Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...

  9. VB读写Excel

        近期用excel和VB比較多,就简单的学习了一下VB中对Excel的处理.今天就介绍一些吧.       在VB中要想调用Excel,须要打开VB编程环境“project”菜单中的“引用”项目 ...

  10. 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入

     1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...