Java图形用户界面设计

1.用AWT和布局管理器设计如图所示调色板界面,点击加减按钮能改变颜色值中各色值的分量,下面面板的颜色同步改变。
在这里插入图片描述

package com.yjq.lesson06;

import java.awt.*;
import java.awt.event.*;

public class Test_3 extends Frame {
   
    //三个标签
    Label l1,l2,l3;
    //六个按钮(三个➕,三个➖)
    Button b1,b2,b3,b4,b5,b6;
    //三个文本框
    TextField tf1,tf2,tf3;
    int count1,count2,count3;
    Color c;
    //实现接口中的方法actionPerformed和textValueChanged
    private class changeText implements ActionListener, TextListener
    {
   
        public void actionPerformed(ActionEvent e){
   
            if(e.getSource()==b1){
   tf1.setText((count1++)+"");}
            if(e.getSource()==b2){
   tf2.setText((count2++)+"");}
            if(e.getSource()==b3){
   tf3.setText((count3++)+"");}
            if(e.getSource()==b4){
   tf1.setText((count1--)+"");}
            if(e.getSource()==b5){
   tf2.setText((count2--)+"");}
            if(e.getSource()==b6){
   tf3.setText((count3--)+"");}
            int c1=Integer.parseInt(tf1.getText());
            int c2=Integer.parseInt(tf2.getText());
            int c3=Integer.parseInt(tf3.getText());
            if(c1>=255) {
   c1=0;count1=0;}
            if(c2>=255) {
   c2=0;count2=0;}
            if(c3>=255) {
   c3=0;count3=0;}
            c=new Color(c1,c2,c3);
            p1.setBackground(c);
        }
        public void textValueChanged(TextEvent e) {
   
            c=new Color(Integer.parseInt(tf1.getText()),Integer.parseInt(tf2.getText()),Integer.parseInt(tf3.getText()));
            p1.setBackground(c);
        }
    }
    //两个面板
    Panel p=new Panel();
    Panel p1=new Panel();
    //设置布局
    GridBagLayout gbl=new  GridBagLayout();
    GridBagConstraints gbc=new GridBagConstraints();
    //构造器
    public Test_3()
    {
   

        setSize(500, 400);
        p.setLayout(gbl);
        gbc.fill=GridBagConstraints.BOTH;
        this.setLabel();
        this.setButton_add();
        this.setTxetField();
        this.setButton_sub();
        this.setPanel();
        add(p);
        setVisible(true);
        this.addWindowListener(new WindowAdapter() {
   
            public void windowClosing(WindowEvent e)
            {
   
                System.exit(0);
            }
        });
    }
    private void setPanel() {
   
        gbc.weightx=10;
        gbc.weighty=10;
        gbc.gridx=0;
        gbc.gridy=4;
        gbc.gridwidth=4;
        gbc.insets=new Insets(10,10,10,10);
        p1.setBackground(new Color(220,220,220));
        gbl.setConstraints(p1, gbc);
        p.add(p1);

    }
    private void setButton_sub() {
   
        b4=new Button("-");
        b5=new Button("-");
        b6=new Button("-");
        b4.setFont(new Font("宋体",Font.PLAIN,20));
        b5.setFont(new Font("宋体",Font.PLAIN,20));
        b6.setFont(new Font("宋体",Font.PLAIN,20));
        gbc.gridx=3;
        gbc.gridy=0;
        gbl.setConstraints(b4, gbc);
        gbc.gridy=1;
        gbl.setConstraints(b5, gbc);
        gbc.gridy=2;
        gbl.setConstraints(b6, gbc);
        p.add(b4);
        p.add(b5);
        p.add(b6);
        b4.addActionListener(new changeText());
        b5.addActionListener(new changeText());
        b6.addActionListener(new changeText());

    }
    private void setTxetField(){
   
        tf1=new TextField(5);
        tf2=new TextField(5);
        tf3=new TextField(5);

        tf1.setText("220");
        tf2.setText("220");
        tf3.setText("220");

        count1=Integer.parseInt(tf1.getText());
        count2=Integer.parseInt(tf1.getText());
        count3=Integer.parseInt(tf1.getText());

        gbc.weightx=1;
        gbc.weighty=1;
        gbc.gridx=2;
        gbc.gridy=0;
        gbl.setConstraints(tf1, gbc);
        gbc.gridy=1;
        gbl.setConstraints(tf2, gbc);
        gbc.gridy=2;
        gbl.setConstraints(tf3, gbc);

        p.add(tf1);
        p.add(tf2);
        p.add(tf3);

        tf1.addTextListener(new changeText());
        tf2.addTextListener(new changeText());
        tf3.addTextListener(new changeText());

        this.setKeyPress(tf1);
        this.setKeyPress(tf2);
        this.setKeyPress(tf3);
    }
    private void setKeyPress(TextField tf)
    {
   
        //具体看addKeyListener的使用方法和说明
        tf.addKeyListener(new KeyAdapter() {
   
            public void keyPressed(KeyEvent e)
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值