---------------------------------------------------------------------------------------------------------
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);
}
}