通过改写 原始对象的paint 方法,来设置对象的border颜色
解决方案:
//通过改写 原始对象的paint 方法,来设置对象的border颜色
1.
package test1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
public class MyFrame {
public static void main(String[] args) {
JFrame frame1 = new JFrame();
frame1.setBounds(400, 300, 200, 200);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setBorder(new LineBorder(Color.red));
frame1.add(panel);
frame1.setVisible(true);
JFrame frame2 = new JFrame() {
// public void paint(Graphics g) {
// super.paint(g);
// Rectangle rect = this.getBounds();
// int width = (int) rect.getWidth() - 1;
// int height = (int) rect.getHeight() - 1;
// g.setColor(Color.red);
// g.drawRect(0, 0, width, height);
// }
//通过改写 原始对象的paint 方法,来设置对象的border颜色
public void paint(Graphics g) {
super.paint(g);
Rectangle rect = this.getBounds();
int width = (int) rect.getWidth() - 1;
int height = (int) rect.getHeight() - 1;
g.setColor(Color.red);
g.drawRect(0, 0, width, height);
}
};
frame2.setBounds(650, 300, 200, 200);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setUndecorated(true);//隐藏标题栏 按钮
frame2.setVisible(true);
}
}
2.
package test1;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.io.FileWriter;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
public class Pic {
private JFrame frmDrag;
private JTextField textField;
private final ButtonGroup buttonGroup = new ButtonGroup();
String str1 = null, str2 = null;
// private JTextField textField_1;
// private final Action action = new SwingAction();
private Font font1 =new Font("Microsoft YaHei", Font.CENTER_BASELINE, 12);
private Font font2 =new Font("Microsoft YaHei", Font.BOLD, 16);
static FileWriter fw ;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Pic window = new Pic();
window.frmDrag.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Pic() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmDrag = new JFrame();
// frmDrag.setResizable(false);
frmDrag.setResizable(true);
// frmDrag.getContentPane().setBackground(new Color(0, 255, 0));
frmDrag.getContentPane().setBackground(Color.GREEN);
//windows green background
//? error 被panel 设置的颜色覆盖
// frmDrag.setBackground(new Color(0, 0, 255));
// frmDrag.setForeground(Color.BLUE);
frmDrag.setTitle("拼图游戏:Made by Xgqfrms");
frmDrag.setFont(font1);
frmDrag.setBounds(10, 10, 800, 600);
frmDrag.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmDrag.getContentPane().setLayout(null);
JPanel panel1 = new JPanel();
// panel1.setBackground(new Color(125, 125, 125));
panel1.setBackground(Color.PINK);
panel1.setBounds(0, 0, 600, 75);
frmDrag.getContentPane().add(panel1);
panel1.setLayout(null);
JLabel label_0 = new JLabel("按钮区");
label_0.setHorizontalAlignment(SwingConstants.CENTER);
label_0.setFont(font2);
label_0.setBounds(0, 0, 50, 30);
label_0.setForeground(Color.BLACK);
panel1.add(label_0);
// JLabel label = new JLabel("\u59D3\u540D:");
JLabel label = new JLabel("数字提示");
label.setHorizontalAlignment(SwingConstants.CENTER);
// label.setFont(new Font("Microsoft YaHei", Font.BOLD, 16));
label.setFont(font2);
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setBounds(41, 35, 80, 30);//坐标(x,y,width,length)
label.setForeground(Color.BLACK);
panel1.add(label);
JLabel label_1 = new JLabel("清除提示");
label_1.setHorizontalAlignment(SwingConstants.CENTER);
label_1.setFont(font2);
label_1.setBounds(141, 35, 80, 30);
label_1.setForeground(Color.BLACK);
panel1.add(label_1);
JLabel label_2 = new JLabel("选择图片:");
label_2.setHorizontalAlignment(SwingConstants.CENTER);
label_2.setFont(font2);
label_2.setBounds(250, 35, 80, 30);
label_2.setForeground(Color.BLACK);
panel1.add(label_2);
JRadioButton radioButton = new JRadioButton("");
buttonGroup.add(radioButton);// 按钮组
radioButton.setSelected(true);
// radioButton.setSelected(false);
radioButton.setBounds(130, 38, 20, 20);
radioButton.setBackground(Color.PINK);
panel1.add(radioButton);
JRadioButton radioButton_1 = new JRadioButton("");
buttonGroup.add(radioButton_1);
radioButton_1.setSelected(false);
radioButton_1.setBounds(30, 38, 20, 20);
radioButton_1.setBackground(Color.PINK);
panel1.add(radioButton_1);
textField = new JTextField();
textField.setBounds(330, 38, 100, 30);
textField.setForeground(Color.red);
textField.setBackground(Color.green);
panel1.add(textField);
textField.setColumns(8);
//通过改写 原始对象的paint 方法,来设置对象的border颜色
JButton button = new JButton("Start"){
public void paint(Graphics g) {
super.paint(g);
Rectangle rect = this.getBounds();
int width = (int) rect.getWidth() - 1;
int height = (int) rect.getHeight() - 1;
g.setColor(Color.red);
g.drawRect(0, 0, width, height);
}
};
// button.setAction(action);
button.setBounds(435, 38, 70, 30);
button.setBorderPainted(true);//没什么效果呀
// button.setName("Start");
button.setFont(font1);
// Border border1;
// button.setBorder(border1.paintBorder(c, g, 0, 0, 70, 30));
// void javax.swing.border.Border.paintBorder(Component c, Graphics g, int x, int y, int width, int height)
panel1.add(button);
Cursor cursor = new Cursor(12);// 光标样式
}
}
通过改写 原始对象的paint 方法,来设置对象的border颜色的更多相关文章
- AOP 如果被代理对象的方法设置了参数 而代理对象的前置方法没有设置参数 则无法拦截到
AOP 如果被代理对象的方法设置了参数 而代理对象的前置方法没有设置参数 则无法拦截到
- 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式
查看本章节 查看作业目录 需求说明: 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式 ...
- ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
使用Connection连接数据库,使用DataReader访问数据库,并返回多行数据. 相关步骤: 需要引入两个命名空间 using System.Data; using System.Data.S ...
- Effective java笔记(二),所有对象的通用方法
Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...
- Javascript对象属性与方法汇总
Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...
- JAVA-JSP内置对象之request对象的其他方法
相关资料:<21天学通Java Web开发> request对象的其他方法1.request对象除了可以用来获得请求参数,还可以用来获得HTTP标头及其他信息. 方法 ...
- JavaScript RegExp对象的exec()方法
JavaScript RegExp对象的exec()方法用来匹配字符串,它的行为与match()有些不同. 对于RegExpObject.exec(),w3school上面是这样介绍的: exec() ...
- 解决vuejs 创建数据后设置对象的属性实现不了双向绑定问题
抛出踩坑:vue创建后的数据,自定义设置对象的属性,实现不了双向绑定 当业务场景,需要在请求接口数据新增自定义的属性 let foodList = [ {title: '回锅肉', price: 99 ...
- ES6学习笔记(七)对象的新增方法
1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...
随机推荐
- kvm实战
1. 安装环境 # yum install qemu-kvm libvirt virt-install virt-manager virt-viewer -y # systemctl start li ...
- apk开发环境!多亏这份《秋招+金九银十-腾讯面试题合集》跳槽薪资翻倍!再不刷题就晚了!
开头 最近很多网友反馈:自己从各处弄来的资料,过于杂乱.零散.碎片化,看得时候觉得挺有用的,但过个半天,啥都记不起来了.其实,这就是缺少系统化学习的后果. 为了提高大家的学习效率,帮大家能快速掌握An ...
- 2021/1/20随记,MTU
背景: 事情是这样的,客户2台防火墙部署了ipsec,内网互通,但是其中ssh以及其他大命令之类的操作就会卡住,简单的vi命令可以使用. 解决: 排除网络问题,因为内网互通,其次是系统层面问题,最终定 ...
- Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令
就这三步骤,下面的是实例不看也罢. apt-get update ###第一步一定要先执行这个更新下.不更新下面的安装命令会显示找不到网络包 //ifconfig apt install net-to ...
- IE双击打不开解决办法
方法1 [百度电脑专家]一键修复 建议下载并安装[百度电脑专家],官网:http://zhuanjia.baidu.com .打开[百度电脑专家],在搜索框内输入"IE修复",在搜 ...
- 洛谷P2292
在<信息学奥赛一本通提高篇>中 Trie字典树 的课后练习看到这道题 然后我就用 Trie字典树 做了这道题 听说这道题的正解是 AC自动机,数据跑满时其他的算法都可以卡掉 然而数据没那么 ...
- MySQL下载地址与Centos7安装MySQL以及启动问题排查
目录 一.MySQL国内镜像下载 二.国内镜像相关站点 三.Centos7安装MySQL5.7 1. 下载并解压至/usr/local 2. 配置信息 3. 用户及用户组管理(提高安全) 4. 初始化 ...
- Java——单例模式、多线程
单例模式 单例模式练习 单例模式的分类 懒汉式 懒汉式相关练习 饿汉式 饿汉式相关练习 线程安全 使用双重检测机制实现线程安全的懒汉式 使用静态内部类实现线程安全的单例模式 多线程 多线程的三种方式 ...
- 04-监控-手册(Runbook)
前言 好的手册在当警报触发时,便于快速定位问题.在更复杂的环境中,团队中的每个人都不会对每个系统都有所了解,而且Runbook是传播这些知识的一个载体,更是好方法. 手册 == RunBook, 请了 ...
- 如何将下载到本地的JAR包手动添加到Maven仓库,妈妈再也不用担心我下载不下来依赖啦
我们有时候使用maven下载jar包的时候,可能maven配置都正确,但是部分jar包就是不能下载下来,如果maven设置都不正确的,可以查看我的maven系列文章,这里仅针对maven配置正确,但是 ...