?? example0501_userinterface.java
字號:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.swing.tree.*;
import javax.swing.table.*;
//主類,擴展了JFrame,實現了ActionListener接口,用于響應菜單項和工具條事件
public class Example0501_UserInterface extends JFrame implements ActionListener
{
JMenuItem dialogs;
JMenu midcoms;
JMenuItem midcoms1;
JMenuItem midcoms2;
JMenuItem midcoms3;
JMenuItem texts;
JMenuItem buttons;
JMenuItem comboxs;
JMenuItem stddialogs;
JMenu choosers;
JMenuItem choosers1;
JMenuItem choosers2;
JMenu bars;
JMenuItem bars1;
JCheckBoxMenuItem bars2;
JMenuItem adjusts;
JMenuItem popmenus;
JMenuItem tables;
JMenuItem trees;
JMenuItem timers;
JMenuItem exits;
JCheckBoxMenuItem check;
JToolBar tool1;
JToolBar tool2;
Container con;
JButton buttdialogs;
JButton buttmidcoms1;
JButton buttmidcoms2;
JButton buttmidcoms3;
JButton butttexts;
JButton buttbuttons;
JButton buttcomboxs;
JButton buttstddialogs;
JButton buttchoosers1;
JButton buttchoosers2;
JButton buttbars1;
JButton buttbars2;
JButton buttadjusts;
JButton buttpopmenus;
JButton butttables;
JButton butttrees;
JButton butttimers;
JButton buttexits;
JLabel info;
boolean look=false;
Example0501_UserInterface()
{
super("界面設計");
Toolkit t=getToolkit();
Image icon=t.getImage("java.gif");
setIconImage(icon);
setSize(500,500);
info=new JLabel("此處顯示有關的信息");
info.setForeground(Color.blue);
try
{
look=JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(null,"是否設置為系統外觀","提示",JOptionPane.YES_NO_OPTION);
if (look)
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
}
catch (Exception ee)
{
info.setText("Can't set the Look and Feel!");
}
con=getContentPane();
con.add(info,"South");
setMenu();
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseMoved(MouseEvent e)
{
info.setText("鼠標位置:x="+e.getX()+", y="+e.getY());
}
public void mouseDragged(MouseEvent e)
{
info.setText("鼠標拖拽位置:x="+e.getX()+", y="+e.getY());
}
});
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
setVisible(true);
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
public void setMenu()
{
JMenuBar menubar=new JMenuBar();
JMenu functions=new JMenu("組件");
dialogs=new JMenuItem("對話框");
dialogs.addActionListener(this);
dialogs.setActionCommand("dialog");
midcoms=new JMenu("中間容器");
midcoms1=new JMenuItem("面板、拆分窗格");
midcoms1.addActionListener(this);
midcoms2=new JMenuItem("標簽窗格");
midcoms2.addActionListener(this);
midcoms3=new JMenuItem("內部窗格");
midcoms3.addActionListener(this);
midcoms.add(midcoms1);
midcoms.add(midcoms2);
midcoms.add(midcoms3);
texts=new JMenuItem("標簽、圖標、文本框");
texts.addActionListener(this);
buttons=new JMenuItem("按鈕");
buttons.addActionListener(this);
comboxs=new JMenuItem("列表框、組合框");
comboxs.addActionListener(this);
stddialogs=new JMenuItem("標準對話框");
stddialogs.addActionListener(this);
choosers=new JMenu("選擇器");
choosers1=new JMenuItem("文件選擇器");
choosers2=new JMenuItem("顏色選擇器");
choosers1.addActionListener(this);
choosers2.addActionListener(this);
choosers.add(choosers1);
choosers.add(choosers2);
bars=new JMenu("條組件");
bars1=new JMenuItem("進度條");
bars2=new JCheckBoxMenuItem("顯示工具條");
bars1.addActionListener(this);
bars2.addActionListener(this);
bars.add(bars1);
bars.addSeparator();
bars.add(bars2);
adjusts=new JMenuItem("滑塊、微調器");
adjusts.addActionListener(this);
popmenus=new JMenuItem("快捷菜單");
popmenus.addActionListener(this);
tables=new JMenuItem("表格");
tables.addActionListener(this);
trees=new JMenuItem("樹");
trees.addActionListener(this);
timers=new JMenuItem("計時器");
timers.addActionListener(this);
exits=new JMenuItem("退出",'x');
exits.addActionListener(this);
exits.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.ALT_MASK));
functions.add(dialogs);
functions.add(midcoms);
functions.add(texts);
functions.add(buttons);
functions.add(comboxs);
functions.add(stddialogs);
functions.add(choosers);
functions.add(bars);
functions.add(adjusts);
functions.add(popmenus);
functions.add(tables);
functions.add(trees);
functions.add(timers);
functions.add(exits);
JMenu checkradios=new JMenu("特殊菜單項");
ImageIcon icon=new ImageIcon("java.gif");
check=new JCheckBoxMenuItem("設為系統外觀",icon,look);
check.addActionListener(this);
JRadioButtonMenuItem radio1=new JRadioButtonMenuItem("單選按鈕菜單項1");
JRadioButtonMenuItem radio2=new JRadioButtonMenuItem("單選按鈕菜單項2");
JRadioButtonMenuItem radio3=new JRadioButtonMenuItem("單選按鈕菜單項3");
check.setActionCommand("323");
checkradios.add(check);
checkradios.addSeparator();
checkradios.add(radio1);
checkradios.add(radio2);
checkradios.add(radio3);
ButtonGroup group=new ButtonGroup();
group.add(radio1);
group.add(radio2);
group.add(radio3);
menubar.add(functions);
menubar.add(checkradios);
setJMenuBar(menubar);
setTools();
}
public void setTools()
{
tool1=new JToolBar();
tool2=new JToolBar();
buttdialogs=new JButton("對話框");
buttdialogs.setActionCommand("dialog");
buttdialogs.addActionListener(this);
buttmidcoms1=new JButton("面板、拆分窗格");
buttmidcoms1.addActionListener(this);
buttmidcoms2=new JButton("標簽窗格");
buttmidcoms2.addActionListener(this);
buttmidcoms3=new JButton("內部窗格");
buttmidcoms3.addActionListener(this);
butttexts=new JButton("文本框");
butttexts.addActionListener(this);
buttbuttons=new JButton("按鈕");
buttbuttons.addActionListener(this);
buttcomboxs=new JButton("列表框、組合框");
buttcomboxs.addActionListener(this);
buttstddialogs=new JButton("標準對話框");
buttstddialogs.addActionListener(this);
buttchoosers1=new JButton("文件選擇器");
buttchoosers1.addActionListener(this);
buttchoosers2=new JButton("顏色選擇器");
buttchoosers2.addActionListener(this);
buttbars1=new JButton("進度條");
buttbars1.addActionListener(this);
buttbars2=new JButton("隱藏工具條");
buttbars2.addActionListener(this);
buttadjusts=new JButton("滑塊、微調器");
buttadjusts.addActionListener(this);
buttpopmenus=new JButton("快捷菜單");
buttpopmenus.addActionListener(this);
butttables=new JButton("表格");
butttables.addActionListener(this);
butttrees=new JButton("樹");
butttrees.addActionListener(this);
butttimers=new JButton("計時器");
butttimers.addActionListener(this);
buttexits=new JButton("退出");
buttexits.addActionListener(this);
buttexits.setToolTipText("Exit");
tool1.add(buttdialogs);
tool1.addSeparator();
tool1.add(buttmidcoms1);
tool1.add(buttmidcoms2);
tool1.add(buttmidcoms3);
tool1.addSeparator();
tool1.add(butttexts);
tool1.addSeparator();
tool1.add(buttbuttons);
tool1.addSeparator();
tool1.add(buttcomboxs);
tool1.addSeparator();
tool1.add(buttstddialogs);
tool1.addSeparator();
tool2.add(buttchoosers1);
tool2.add(buttchoosers2);
tool2.addSeparator();
tool2.add(buttbars1);
tool2.add(buttbars2);
tool2.addSeparator();
tool2.add(buttadjusts);
tool2.addSeparator();
tool2.add(buttpopmenus);
tool2.addSeparator();
tool2.add(butttables);
tool2.addSeparator();
tool2.add(butttrees);
tool2.addSeparator();
tool2.add(butttimers);
tool2.addSeparator();
tool2.add(buttexits);
tool1.setVisible(false);
tool2.setVisible(false);
// tool1.setFloatable(false); //設置是否可浮動
// tool2.setFloatable(false); //設置是否可浮動
tool1.setRollover(true);
tool2.setRollover(true);
JPanel p=new JPanel();
p.setLayout(new GridLayout(2,1));
p.add(tool1);
p.add(tool2);
con.add(p,"North");
}
public void actionPerformed(ActionEvent e)
{
Object target=e.getSource();
if (target==check)
{
try
{
if (check.getState())
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
else
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception ee)
{
info.setText("Can't set the Look and Feel!");
}
}
if (e.getActionCommand()=="dialog")
{
MyJDialog dialog1=new MyJDialog(null,"模式對話框",true);
MyJDialog dialog2=new MyJDialog(this,"非模式對話框",false);
}
if (target==midcoms1 || target==buttmidcoms1)
{
Midcoms1 midcom=new Midcoms1();
}
if (target==midcoms2 || target==buttmidcoms2)
{
Midcoms2 midcom=new Midcoms2();
}
if (target==midcoms3 || target==buttmidcoms3)
{
Midcoms3 midcom=new Midcoms3();
}
if (target==texts || target==butttexts)
{
Texts text=new Texts();
}
if (target==buttons || target==buttbuttons)
{
Buttons button=new Buttons();
}
if (target==comboxs || target==buttcomboxs)
{
Comboxs combox=new Comboxs();
}
if (target==stddialogs || target==buttstddialogs)
{
Stddialogs stddialog=new Stddialogs();
}
if (target==choosers1 || target==buttchoosers1)
{
Choosers1 chooser=new Choosers1();
}
if (target==choosers2 || target==buttchoosers2)
{
Choosers2 chooser=new Choosers2();
}
if (target==bars1 || target==buttbars1)
{
Bars1 bar=new Bars1();
}
if (target==bars2)
{
tool1.setVisible(bars2.getState());
tool2.setVisible(bars2.getState());
}
if (target==buttbars2)
{
bars2.setState(!bars2.getState());
tool1.setVisible(bars2.getState());
tool2.setVisible(bars2.getState());
}
if (target==adjusts || target==buttadjusts)
{
Adjusts adjust=new Adjusts();
}
if (target==popmenus || target==buttpopmenus)
{
Popmenus popmenu=new Popmenus();
}
if (target==tables || target==butttables)
{
Tables table=new Tables();
}
if (target==trees || target==butttrees)
{
Trees tree=new Trees();
}
if (target==timers || target==butttimers)
{
Timers timer=new Timers();
}
if (target==exits || target==buttexits)
{
System.exit(0);
}
}
public static void main(String[] args)
{
Example0501_UserInterface frm=new Example0501_UserInterface();
}
}
class MyJDialog extends JDialog
{
MyJDialog(JFrame frame,String title,boolean modal)
{
super(frame,title,modal);
setSize(300,300);
setVisible(true);
}
}
class Midcoms1 extends JFrame
{
class MyJPanel extends JPanel
{
MyJPanel()
{
setBackground(Color.BLUE);
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.YELLOW);
g.drawString("面板",20,20);
}
}
JTextArea texta;
JButton butt;
MyJPanel myp;
JScrollPane scrollp;
JSplitPane splitp1,splitp2;
Midcoms1()
{
super("一個復合的窗口框架");
texta=new JTextArea("文本區",10,20);
scrollp=new JScrollPane(texta);
butt=new JButton("按鈕");
myp=new MyJPanel();
splitp1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,butt,myp);
splitp2=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitp1,scrollp);
getContentPane().add(splitp2);
setSize(300,300);
setVisible(true);
}
}
class Midcoms2 extends JFrame implements ChangeListener
{
JTabbedPane tabp;
JPanel p1;
JPanel p2;
JButton b1;
JButton b2;
JTextArea text=new JTextArea(20,20);
Midcoms2()
{
tabp=new JTabbedPane();
p1=new JPanel();
p2=new JPanel();
b1=new JButton("b1");
b2=new JButton("b2");
p1.add(b1);
p1.add(b2);
text=new JTextArea(20,20);
p2.add(text);
tabp.addTab("p1",p1);
tabp.addTab("p2",p2);
// tabp.setTabPlacement(JTabbedPane.BOTTOM); //設置標簽顯示的位置
tabp.addChangeListener(this);
Container con=getContentPane();
con.add(tabp);
setSize(600,600);
setVisible(true);
pack();
}
public void stateChanged(ChangeEvent e)
{
JTabbedPane tp=(JTabbedPane)e.getSource();
if (tp.getSelectedComponent()==p1)
{
JOptionPane.showMessageDialog(this,"You selected p1");
}
}
}
class Midcoms3 extends JFrame
{
JInternalFrame inf1;
JInternalFrame inf2;
JDesktopPane desk;
Midcoms3()
{
inf1=new JInternalFrame("內部窗體1");
inf1.setSize(200,200);
inf1.setVisible(true);
inf2=new JInternalFrame("內部窗體2");
inf2.setSize(200,200);
inf2.setVisible(true);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -