25---AWT和Swing(08)复选框(视频代码)

本文提供了两个使用Java Swing实现的复选框(JCheckBox)示例,演示如何创建带有图标变化功能的复选框,并展示了如何布局及响应选择事件。
 

代码一:
 import java.awt.Container ;
 import java.awt.GridLayout ;
 import java.awt.event.WindowAdapter ;
 import java.awt.event.WindowEvent ;
 import javax.swing.JFrame ;
 import javax.swing.JPanel ;
 import javax.swing.JCheckBox ;
 import javax.swing.BorderFactory ;
 class MyCheckBox{
  private JFrame frame = new JFrame("Welcome To MLDN") ; // 定义窗体
  private Container cont = frame.getContentPane() ; // 得到窗体容器
  private JCheckBox jcb1 = new JCheckBox("MLDN") ; // 定义一个复选框
  private JCheckBox jcb2 = new JCheckBox("MLDNJAVA") ; // 定义一个复选框
  private JCheckBox jcb3 = new JCheckBox("智囊团") ; // 定义一个复选框
  private JPanel pan = new JPanel() ;
  public MyCheckBox(){
   pan.setBorder(BorderFactory.createTitledBorder("请选择最喜爱的网站")) ;
   pan.setLayout(new GridLayout(1,3)) ; // 设置组件的排版
   pan.add(this.jcb1) ; // 增加组件
   pan.add(this.jcb2) ; // 增加组件
   pan.add(this.jcb3) ; // 增加组件
   cont.add(pan) ; // 将面板加入到容器之中
   this.frame.setSize(330,80) ;
   this.frame.setVisible(true) ; // 设置可显示
   this.frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent arg){
     System.exit(1) ;
    }
   }) ;
  }

 }

 public class JCheckBoxDemo01{
  public static void main(String args[]){
   new MyCheckBox() ;
  }
 }

代码二:
 import java.io.File ;
 import java.awt.Container ;
 import java.awt.GridLayout ;
 import java.awt.event.WindowAdapter ;
 import java.awt.event.WindowEvent ;
 import java.awt.event.ItemListener ;
 import java.awt.event.ItemEvent ;
 import javax.swing.JFrame ;
 import javax.swing.ImageIcon ;
 import javax.swing.JPanel ;
 import javax.swing.JCheckBox ;
 import javax.swing.BorderFactory ;

 class MyItemListener implements ItemListener{
  private String right = "d:" + File.separator + "right.png" ;
  private String wrong = "d:" + File.separator + "wrong.gif" ;
  public void itemStateChanged(ItemEvent e){
   // 不管如何操作,则肯定由JCheckBox产生事件
   JCheckBox jcb = (JCheckBox)e.getItem() ; // 得到产生的事件
   if(jcb.isSelected()){ // 如果被选中了,则显示正确的图片
    jcb.setIcon(new ImageIcon(right)) ;
   }else{
    jcb.setIcon(new ImageIcon(wrong)) ;
   }
  }
 }
 class MyCheckBox{
  private String wrong = "d:" + File.separator + "wrong.gif" ;
  private JFrame frame = new JFrame("Welcome To MLDN") ; // 定义窗体
  private Container cont = frame.getContentPane() ; // 得到窗体容器
  private JCheckBox jcb1 = new JCheckBox("MLDN",new ImageIcon(wrong)) ; // 定义一个复选框
  private JCheckBox jcb2 = new JCheckBox("MLDNJAVA",new ImageIcon(wrong)) ; // 定义一个复选框
  private JCheckBox jcb3 = new JCheckBox("智囊团",new ImageIcon(wrong)) ; // 定义一个复选框
  private JPanel pan = new JPanel() ;
  public MyCheckBox(){
   pan.setBorder(BorderFactory.createTitledBorder("请选择最喜爱的网站")) ;
   pan.setLayout(new GridLayout(1,3)) ; // 设置组件的排版
   pan.add(this.jcb1) ; // 增加组件
   pan.add(this.jcb2) ; // 增加组件
   pan.add(this.jcb3) ; // 增加组件

   jcb1.addItemListener(new MyItemListener()) ;
   jcb2.addItemListener(new MyItemListener()) ;
   jcb3.addItemListener(new MyItemListener()) ;

   cont.add(pan) ; // 将面板加入到容器之中
   this.frame.setSize(330,80) ;
   this.frame.setVisible(true) ; // 设置可显示
   this.frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent arg){
     System.exit(1) ;
    }
   }) ;
  }

 }

 public class JCheckBoxDemo02{
  public static void main(String args[]){
   new MyCheckBox() ;
  }
 }

数据驱动的两阶段分布鲁棒(1-范数-范数约束)的电热综合能源系统研究(Matlab代码实现)内容概要:本文围绕“数据驱动的两阶段分布鲁棒(1-范数-范数约束)的电热综合能源系统研究”展开,提出了一种结合数据驱动与分布鲁棒优化方法的建模框架,用于解决电热综合能源系统在不确定性环境下的优化调度问题。研究采用两阶段优化结构,第一阶段进行预决策,第二阶段根据实际场景进行调整,通过引入1-范数-范数约束来构建不确定集,有效刻画风电、负荷等不确定性变量的波动特性,提升模型的鲁棒性实用性。文中提供了完整的Matlab代码实现,便于读者复现验证算法性能,并结合具体案例分析了不同约束条件下系统运行的经济性与可靠性。; 适合人群:具备一定电力系统、优化理论Matlab编程基础的研究生、科研人员及工程技术人员,尤其适合从事综合能源系统、鲁棒优化、不确定性建模等相关领域研究的专业人士。; 使用场景及目标:①掌握数据驱动的分布鲁棒优化方法在综合能源系统中的应用;②理解1-范数-范数在构建不确定集中的作用与差异;③学习两阶段鲁棒优化模型的建模思路与Matlab实现技巧,用于科研复现、论文写作或工程项目建模。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现细节,重点关注不确定集构建、两阶段模型结构设计及求解器调用方式,同时可尝试更换数据或调整约束参数以加深对模型鲁棒性的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值