吐槽-使用Swing实现的第一个页面

---------------------------------------------------------------------------------------------------------

2019年1月10日更新:

此习题我已通过参考SwingSet3中的JButtonDemo界面的源码而解出,参考:

 

学以致用——Java源码——使用Swing创建用户界面原型,

https://blog.csdn.net/hpdlzu80100/article/details/86260801

---------------------------------------------------------------------------------------------------------

学了几天Swing,觉得应该可以完成课后习题了。

可是,第一个页面就把我给难住了。

题目:创建下图所示GUI

 

忙活了1个多小时后,我开发的界面如下:

感悟:学艺不精,可悲!等提升实力后再来挑战吧。

代码如下:

 

package exercise;

import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JCheckBox;
import javax.swing.JTextField;
import javax.swing.JPanel;

import javax.swing.JButton;

public class FirstGUI extends JFrame 
{

private final JCheckBox snapCheckBox; 
private final JCheckBox showCheckBox; 
private final JButton okJButton; 
private final JTextField xJTextField; 
private final JTextField yJTextField; 
private final JButton cancelJButton; 
private final JButton helpJButton; 
private final JPanel checkBoxGroup; 
private final JPanel buttonGroup; 
private final JPanel textGroup; 
private final BorderLayout layout; 
private final BorderLayout checkBoxGrouplayout; 
private final BorderLayout buttonGrouplayout; 
private final BorderLayout textGrouplayout; 

public FirstGUI(){ 
super("第一个GUI");
 layout = new BorderLayout(); 
 setLayout(layout); 
 
 
 snapCheckBox=new JCheckBox("Snap to Grid");
 showCheckBox=new JCheckBox("Show Grid");
 checkBoxGroup=new JPanel();
 checkBoxGrouplayout=new BorderLayout() ;
 checkBoxGroup.setLayout(checkBoxGrouplayout);
 checkBoxGroup.add(snapCheckBox,BorderLayout.NORTH);
 checkBoxGroup.add(showCheckBox,BorderLayout.CENTER);
 add(checkBoxGroup,BorderLayout.WEST);
 
 xJTextField=new JTextField("X",10);
 yJTextField=new JTextField("Y",10);
 textGroup=new JPanel();
 textGrouplayout=new BorderLayout() ;
 textGroup.setLayout(textGrouplayout);
 textGroup.add(xJTextField,BorderLayout.NORTH);
 textGroup.add(yJTextField,BorderLayout.CENTER);
 add(textGroup,BorderLayout.CENTER);
 
 
 okJButton=new JButton("OK");
 cancelJButton=new JButton("Cancel");
 helpJButton=new JButton("Help");
 buttonGroup=new JPanel();
 buttonGrouplayout=new BorderLayout() ;
 buttonGroup.setLayout(buttonGrouplayout);
 buttonGroup.add(okJButton,BorderLayout.NORTH);
 buttonGroup.add(cancelJButton,BorderLayout.CENTER);
 buttonGroup.add(helpJButton,BorderLayout.SOUTH);
 add(buttonGroup,BorderLayout.EAST);
}

public static void main(String[] args)
{ 
	FirstGUI flowLayoutFrame = new FirstGUI(); 
   flowLayoutFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   flowLayoutFrame.setSize(300, 75); 
   flowLayoutFrame.setVisible(true); 
} 
}


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值