解决方案:

//通过改写 原始对象的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颜色的更多相关文章

  1. AOP 如果被代理对象的方法设置了参数 而代理对象的前置方法没有设置参数 则无法拦截到

    AOP 如果被代理对象的方法设置了参数 而代理对象的前置方法没有设置参数 则无法拦截到

  2. 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式

    查看本章节 查看作业目录 需求说明: 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式 ...

  3. ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据

    使用Connection连接数据库,使用DataReader访问数据库,并返回多行数据. 相关步骤: 需要引入两个命名空间 using System.Data; using System.Data.S ...

  4. Effective java笔记(二),所有对象的通用方法

    Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...

  5. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  6. JAVA-JSP内置对象之request对象的其他方法

    相关资料:<21天学通Java Web开发> request对象的其他方法1.request对象除了可以用来获得请求参数,还可以用来获得HTTP标头及其他信息. 方法           ...

  7. JavaScript RegExp对象的exec()方法

    JavaScript RegExp对象的exec()方法用来匹配字符串,它的行为与match()有些不同. 对于RegExpObject.exec(),w3school上面是这样介绍的: exec() ...

  8. 解决vuejs 创建数据后设置对象的属性实现不了双向绑定问题

    抛出踩坑:vue创建后的数据,自定义设置对象的属性,实现不了双向绑定 当业务场景,需要在请求接口数据新增自定义的属性 let foodList = [ {title: '回锅肉', price: 99 ...

  9. ES6学习笔记(七)对象的新增方法

    1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...

随机推荐

  1. docker容器的基本命令

      #安装docker yum -y install docker systemctl start docker.service systemctl status docker systemctl e ...

  2. HTTPS学习(一):准备知识

    div.example { background-color: rgba(229, 236, 243, 1); color: rgba(0, 0, 0, 1); padding: 0.5em; mar ...

  3. tricks - 思维

    编辑 目录 tricks 系列 随机的性质 bitmask 建图 最基本的 黑白染色 Kruskal重构树 并查集维护值域 带根号的数三元环 根号分治 调和级数哈希 多属性哈希 时光倒流 时光反复横跳 ...

  4. HDU1814和平委员会

    题目大意: 有n对的人,编号从1-2*n,m对的人之间互相不喜欢,每对人中必徐选1个人加入和平委员会,求字典序最小的解 -------------------------------- 2-SAT问题 ...

  5. Linux系统磁盘管理(lvm逻辑卷管理)

    linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文 ...

  6. (31)grep命令详解:查找文件内容

    1.grep命令用于不需要列出文件的全部内容,而是从文件中找到包含指定信息的那些行. grep命令能够在一个或多个文件中,搜索某一特定的字符模式(也就是正则表达式),此模式可以是单一的字符.字符串.单 ...

  7. Python开发桌面微型计算器

    开发Windows窗口需要用到tkinter库 所以上来的第一件事就是: import tkinter as t window = t.Tk()#创建了一个窗口 window.title('微型计算器 ...

  8. 零基础如何使用python处理字符串?

    摘要:Python的普遍使用场景是自动化测试.爬取网页数据.科学分析之类,这其中都涉及到了对数据的处理,而数据的表现形式很多,今天我们来讲讲字符串的操作.   字符串是作为任意一门编程语言的基础,在P ...

  9. 初窥 Python 的 import 机制

    本文适合有 Python 基础的小伙伴进阶学习 作者:pwwang 一.前言 本文基于开源项目: https://github.com/pwwang/python-import-system 补充扩展 ...

  10. The 2019 Asia Nanchang First Round Online Programming Contest C. Hello 2019(动态dp)

    题意:要找到一个字符串里面存在子序列9102 而不存在8102 输出最小修改次数 思路:对于单次询问 我们可以直接区间dpOn求出最小修改次数 但是对于多次询问 我在大部分题解看到的解释一般是用线段树 ...