import java.awt.;

import javax.swing.;

import java.awt.event.;

jsp自适应出现横向滚动条进修java Swing编程的一个简略Demo React

public class SwingComponent

{

//创建窗体,JFrame

JFrame f = new JFrame(\"大众测试\"大众);

//定义一个按钮,并为之指定图标

//ImageIcon(Image image)

//根据图像工具创建一个 ImageIcon。
Icon是接口,ImageIcon实现了该接口,多态的表示

//定义一个单选按钮,并为之指定图标

Icon okIcon = new ImageIcon(\"大众ico/ok.png\"大众);

JButton ok = new JButton(\"大众确认\公众,okIcon);

//定义一个单选按钮,失事处于选中状态

//JradioButton 实现一个单选按钮,此按钮项可当选择或取消选择,并可为用户显示其状态。

//JRadioButton(String text, boolean selected)

//创建一个具有指定文本和选择状态的单选按钮。

JRadioButton male = new JRadioButton(\"大众男\公众,true);

JRadioButton female = new JRadioButton(\"大众女\"大众,false);

ButtonGroup bg = new ButtonGroup();

//定义一个复选框,失事状态处于没有选中状态

JCheckBox married = new JCheckBox(\"大众是否已婚?\"大众,false);

String[] colors = new String[]{\"大众赤色\公众,\公众绿色\"大众,\"大众蓝色\公众};

//定义一个下拉选择框

//JComboBox(Object[] items)

//创建包含指天命组中的元素的 JComboBox。

JComboBox<String> colorChooser = new JComboBox<>(colors);

//定义一个列表选择框??????????????

//JList(Object[] listData)

//布局一个 JList,使其显示指天命组中的元素。

JList<String> colorList = new JList<>(colors);

//定义一个8行20列的多行文本框

JTextArea ta = new JTextArea(8,20);

//定义一个40列的单行文本框

JTextField name = new JTextField(40);

JMenuBar mb = new JMenuBar();

JMenu file = new JMenu(\"大众文件\公众);

//JMenu(String s)

//布局一个新 JMenu,用供应的字符串作为其文本。

JMenu edit = new JMenu(\"大众编辑\公众);

Icon newIcon = new ImageIcon(\"大众ico/new.png\"大众);

//JMenuItem(String text, Icon icon)

//创建带有指定文本和图标的 JMenuItem。

JMenuItem newItem = new JMenuItem(\"大众新建\"大众,newIcon);

Icon saveIcon = new ImageIcon(\"大众ico/new.png\"大众);

JMenuItem saveItem = new JMenuItem(\公众保存\"大众,saveIcon);

Icon exitIcon = new ImageIcon(\"大众ico/exit.png\"大众);

JMenuItem exitItem = new JMenuItem(\公众退出\公众,exitIcon);

JCheckBoxMenuItem autoWrap = new JCheckBoxMenuItem(\"大众自动换行\"大众);

JMenuItem copyItem = new JMenuItem(\"大众复制\"大众,new ImageIcon(\公众ico/copy.png\公众));

JMenuItem pasteItem = new JMenuItem(\公众粘贴\"大众,new ImageIcon(\公众ico/paste.png\"大众));

JMenu format = new JMenu(\公众格式\"大众);

JMenuItem commentItem = new JMenuItem(\"大众注释\"大众);

JMenuItem cancelItem = new JMenuItem(\"大众取消注释\公众);

//定义一个右键菜单,用于设定程序的外不雅观风格

JPopupMenu pop = new JPopupMenu();

ButtonGroup flavorGroup = new ButtonGroup();

//创建5个单选按钮,用于设定程序的外不雅观风格

JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem(\"大众Metal风格\公众,true);

JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem(\"大众Nimbus风格\公众);

JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem(\"大众windows风格\"大众);

JRadioButtonMenuItem motifyItem = new JRadioButtonMenuItem(\"大众motifyItem风格\公众);

JRadioButtonMenuItem classicItem = new JRadioButtonMenuItem(\"大众windows经典风格\公众);

/------------------下面是用于实行界面初始化的init方法-------------------------/

public void init()

{

//创建一个装载了文本框、按钮的JPanel

JPanel bottom = new JPanel();

bottom.add(name);

bottom.add(ok);

f.add(bottom,BorderLayout.SOUTH);//用BorderLayout布局管理器,放在最底层

//创建一个装载了下拉选择框、三个JCheckBox的JPanel

JPanel checkPanel = new JPanel();

checkPanel.add(colorChooser);

////既要加载在一个ButtonGroup中,也要加载在checkPanel中

//若去掉bg.add(male);bg.add(female); 则能选两个性别

//若去掉 checkPanel.add(male);checkPanel.add(female); 则两个性别RadioButton消逝

bg.add(male);

bg.add(female);

checkPanel.add(male);

checkPanel.add(female);

checkPanel.add(married);

//创建一个垂直排列的组件的Box,艳服多行文本域JPanel

Box topLeft = Box.createVerticalBox();//创建一个从上到下显示的Box

//利用JScrollPance作为普通组件的JViewPort

JScrollPane taJsp = new JScrollPane(ta);

topLeft.add(taJsp);

topLeft.add(checkPanel);

//创建一个水平排列组件的Box,艳服topLeft、colorList

Box top = Box.createHorizontalBox();

top.add(topLeft);

top.add(colorList);

//将Top Box容器添加到窗口的中间

f.add(top);

//----------下面开始组合菜单,并未菜单添加监听器---------------------

//为newItem设置快捷键,设置快捷键时要利用大写字母

newItem.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK));

newItem.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

ta.append(\"大众用户单击了“新建”菜单\n\"大众);

}

});

//为file菜单添加菜单项

file.add(newItem);

file.add(saveItem);

file.add(exitItem);

//为exit菜单添加菜单项

edit.add(autoWrap);

//利用addSeparator方法添加菜单分隔线

edit.addSeparator();

edit.add(copyItem);

edit.add(pasteItem);

//为commentItem组件添加提示信息

commentItem.setToolTipText(\公众将从程序代码注释起来!
\"大众);

//为format菜单添加菜单项

format.add(commentItem);

format.add(cancelItem);

//利用添加new JMenuItem(“-”)的办法不能添加菜单分隔符

edit.add(new JMenuItem(\"大众-\"大众));

//将format菜单组合到eidt菜单中,从而形成二级菜单

edit.add(format);

//将file、edit菜单添加到mb菜单条中

mb.add(file);

mb.add(edit);

//为f窗口设置菜单条

f.setJMenuBar(mb);

//------下面开始组合右键菜单,并安装右键菜单-----------------

flavorGroup.add(metalItem);

flavorGroup.add(nimbusItem);

flavorGroup.add(windowsItem);

flavorGroup.add(classicItem);

flavorGroup.add(motifyItem);

pop.add(metalItem);

pop.add(nimbusItem);

pop.add(windowsItem);

pop.add(classicItem);

pop.add(motifyItem);

//为5个风格菜单创建事宜监听器

ActionListener flavorListener = new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

try{

switch(e.getActionCommand())

{

case \"大众Metal风格\公众:

changeFlavor(1);

break;

case \"大众Nimbus风格\公众:

changeFlavor(2);

break;

case \"大众Windows风格\"大众:

changeFlavor(3);

break;

case \公众Windows经典风格\"大众:

changeFlavor(4);

break;

case \公众Motif风格\"大众:

changeFlavor(5);

break;

}

}

catch(Exception ee)

{

ee.printStackTrace();

}

}

};

//为5个风格菜单项添加事宜监听器

metalItem.addActionListener(flavorListener);

nimbusItem.addActionListener(flavorListener);

windowsItem.addActionListener(flavorListener);

classicItem.addActionListener(flavorListener);

motifyItem.addActionListener(flavorListener);

//调用该方法即可设置右键菜单,无须利用事宜机制;

ta.setComponentPopupMenu(pop);

//设置关闭窗口时,退出程序

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.pack();

f.setVisible(true);

//方法内部不再嵌套方法,而是调用语句了

}

private void changeFlavor(int flavor) throws Exception

{

switch(flavor)

{

//设置Metal风格

case 1:

UIManager.setLookAndFeel(\"大众javax.swing.plaf.metal.MetalLookAndFeel\"大众);

break;

case 2:

UIManager.setLookAndFeel(\"大众javax.swing.plaf.nimbus.NimusLoolAndFeel\"大众);

break;

case 3:

UIManager.setLookAndFeel(\"大众com.sun.java.swing.plaf.windows.WindowsLookAndFeel\公众);

break;

case 4:

UIManager.setLookAndFeel(\公众com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel\公众);

break;

case 5:

UIManager.setLookAndFeel(\"大众com.sun.java.swing.plaf.motif.MotifLookAndFeel\公众);

break;

}

//更新f窗口内顶级容器以及内部所有组件的UI

SwingUtilities.updateComponentTreeUI(f.getContentPane());

//更新mb菜单条以及内部所有组件的UI

SwingUtilities.updateComponentTreeUI(mb);

//更新pop右键菜单以及内部所有组件的UI

SwingUtilities.updateComponentTreeUI(pop);

}

public static void main(String[] args)

{

new SwingComponent().init();

}

}

/

1、JRadioButton:实现一个单选按钮,此按钮项可当选择或取消选择,并可为用户显示其状态。
与 ButtonGroup 工具合营利用可创建一组按钮,一次只能选择个中的一个按钮。
(创建一个 ButtonGroup 工具并用其 add 方法将 JRadioButton 工具包含在此组中。

2、ButtonGroup: 此类用于为一组按钮创建一个多斥(multiple-exclusion)浸染域。
利用相同的 ButtonGroup 工具创建一组按钮意味着“开启”个中一个按钮时,将关闭组中的其他所有按钮。

3、JComboBox:将按钮或可编辑字段与下拉列表组合的组件。
用户可以从下拉列表中选择值,下拉列表在用户要求时显示。
如果使组合框处于可编辑状态,则组合框将包括用户可在个中键入值的可编辑字段。

4、JMenuBar:菜单栏的实现。
将 JMenu 工具添加到菜单栏以布局菜单。
当用户选择 JMenu 工具时,就会显示其关联的 JPopupMenu,许可用户选择其上的某一个 JMenuItem。

5、JMenuItem:菜单中的项的实现。
菜单项实质上是位于列表中的按钮。
当用户选择“按钮”时,则实行与菜单项关联的操作。
JPopupMenu 中包含的 JMenuItem 恰好实行该功能。

6、JCheckBoxMenuItem:可以当选定或取消选定的菜单项。
如果当选定,菜单项的阁下常日会涌现一个复选标记。
如果未当选定或被取消选定,菜单项的阁下就没有复选标记。
像常规菜单项一样,复选框菜单项可以有与之关联的文本或图标,或者二者兼而有之。
举例:自动换行,如果当选中,后面会涌现 钩

7、JPopupMenu:弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口。
JPopupMenu 用于用户在菜单栏上选择项时显示的菜单。
它还用于当用户选择菜单项并激活它时显示的“右拉式 (pull-right)”菜单。
末了,JPopupMenu 还可以在想让菜单显示的任何其他位置利用。
例如,当用户在指定区域中右击时。

8、JRadioButtonMenutItem:一个单选按钮菜单项的实现。
JRadioButtonMenuItem 是属于一组菜单项中的一个菜单项,该组中只能选择一个项。
当选择的项显示其选择状态。
选择此项的同时,其他任何以前当选择的项都切换到未选择状态。
要掌握一组单选按钮菜单项的选择状态,请利用 ButtonGroup 工具。

9、JScrollPane:供应轻量级组件的 scrollable 视图。
JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。

10、JMenu被添加到JMenuBar中,形成菜单,被添加在JMenu中,形成二级菜单;

11、Swing菜单不许可利用add(new JMenutItem(“-”))的办法来添加菜单分隔符,只能利用addSeparator()方法来添加菜单分隔符

/