窗口 JFrame常用方法
import javax.swing.*;
import java.awt.*;
public class exam {
public static void main(String[] args) {
JFrame window1=new JFrame();
JFrame window2=new JFrame();
Container container =window1.getContentPane();
container.setBackground(Color.yellow); //设置窗口的背景色
window1.setBounds(60,100,188,108); //设置窗口在屏幕上的位置及大小
window2.setBounds(260,100,188,108);
window1.setVisible(true);
window1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //释放当前窗口
window2.setVisible(true);
window2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出程序
}
}
菜单条,菜单,菜单项
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import static javax.swing.JFrame.*;
public class WindowMenu extends JFrame { //JFrame的子类
JMenuBar menuBar;
JMenu menu,subMenu;
JMenuItem item1,item2;
public WindowMenu(){}
public WindowMenu(String s,int x,int y,int w,int h) {
init(s);
setLocation(x,y);
setSize(w,h);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
void init(String s){
setTitle(s);
menuBar=new JMenuBar();
menu=new JMenu("菜单");
subMenu=new JMenu("软件项目");
item1=new JMenuItem("Java话题",new ImageIcon("a.gif"));
item2=new JMenuItem("动画话题",new ImageIcon("b.gif"));
item1.setAccelerator(KeyStroke.getKeyStroke('A'));
item2.setAccelerator(KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK));
menu.add(item1);
menu.addSeparator();
menu.add(item2);
menu.add(subMenu);
subMenu.add(new JMenuItem("汽车销售系统",new ImageIcon("c.gif")));
subMenu.add(new JMenuItem("农场信息系统",new ImageIcon("d.gif")));
menuBar.add(menu);
setJMenuBar(menuBar);
}
}
public class exam {
public static void main(String[] args) {
WindowMenu windowMenu=new WindowMenu("带菜单的窗口",20,30,200,190);
}
}
常用组件与布局
import java.awt.*;
import javax.swing.*;
public class ComponentInWindow extends JFrame {
JCheckBox checkBox1,checkBox2; //复选框
JRadioButton radioM,radioF; //单选框
ButtonGroup group;
JComboBox comBox; //下拉列表
public ComponentInWindow(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
comBox=new JComboBox();
checkBox1=new JCheckBox("喜欢音乐");
checkBox2=new JCheckBox("喜欢旅游");
group=new ButtonGroup();
radioM=new JRadioButton("男");
radioF=new JRadioButton("女");
group.add(radioM);
group.add(radioF); //归组才能实现单选
add(checkBox1);
add(checkBox2);
add(radioM);
add(radioF);
comBox.addItem("音乐天地");
comBox.addItem("武术天地");
add(comBox);
}
}
public class exam {
public static void main(String[] args) {
ComponentInWindow window=new ComponentInWindow();
window.setBounds(100,100,450,260);
window.setTitle("常用的插件");
}
}
常用容器
public class exam {
public static void main(String[] args) {
new ShowLayout();
}
}
import java.awt.*;
import javax.swing.*;
public class ShowLayout extends JFrame {
PanelGridLayout pannelGrid; //网格布局的版面
PanelNullLayout panelNull; //空布局的版面
JTabbedPane p;
public ShowLayout() {
pannelGrid = new PanelGridLayout();
panelNull = new PanelNullLayout();
p=new JTabbedPane();
p.add("网格布局的面板",pannelGrid);
p.add("空布局的面板",panelNull);
add(p,BorderLayout.CENTER);
add(new JButton("窗体是BorderLayout布局"),BorderLayout.NORTH);
add(new JButton("南"),BorderLayout.SOUTH);
add(new JButton("西"),BorderLayout.WEST);
add(new JButton("东"),BorderLayout.EAST);
setBounds(10,10,570,390);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
validate();
}
}
import java.awt.*;
import javax.swing.*;
public class PanelGridLayout extends JPanel {
public PanelGridLayout() {
GridLayout grid=new GridLayout(12,12); //网格布局
setLayout(grid);
Label label[][]=new Label[12][12];
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
label[i][j]=new Label();
if((i+j)%2==0)
label[i][j].setBackground(Color.black);
else
label[i][j].setBackground(Color.white);
add(label[i][j]);
}
}
}
}
import javax.swing.*;
public class PanelNullLayout extends JPanel {
JButton button;
JTextField text;
public PanelNullLayout() {
setLayout(null); //空布局
button = new JButton("确定");
text=new JTextField();
add(text);
add(button);
text.setBounds(100,30,90,30);
button.setBounds(190,30,66,30);
}
}
public class exam {
public static void main(String[] args) {
WindowBoxLayout win=new WindowBoxLayout();
win.setBounds(100,100,310,260);
win.setTitle("嵌套盒式布局容器");
}
}
import javax.swing.*;
public class WindowBoxLayout extends JFrame {
Box boxH; //行式盒
Box boxVOne,boxVTwo; //列式盒
public WindowBoxLayout(){
setLayout(new java.awt.FlowLayout());
init();
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
void init(){
boxH=Box.createHorizontalBox();
boxVOne=Box.createVerticalBox();
boxVTwo=Box.createVerticalBox();
boxVOne.add(new JLabel("姓名:"));
boxVOne.add(new JLabel("职业:"));
boxVTwo.add(new JTextField(10));
boxVTwo.add(new JTextField(10));
boxH.add(boxVOne);
boxH.add(Box.createHorizontalStrut(10));
boxH.add(boxVTwo);
add(boxH);
}
}