import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import java.io.*;
import java.lang.*;
import javax.swing.undo.*;
public class MainFrame
{
JDesktopPane desktop;
JFrame topFrame;
JMenuBar menuBar;
JPopupMenu popupMenu;
public MainFrame()
{
topFrame = new JFrame("MainFrame-Look and Feel");
topFrame.setBounds(100,100,630,400); // --- setBounds(x座標,y座標,寬,高)
buildContent();
buildMenuBar();
buildToolBar();
popupMenu = buildPopupMenu();
topFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}); //end of addWindowListener
topFrame.setVisible(true);
} //end of MainFrame()
public void buildContent()
{
desktop = new JDesktopPane();
topFrame.getContentPane().add(desktop);
}//end of buildContent()
public void buildMenuBar()
{
String menuName;
menuBar = new JMenuBar();
menuName = "File";
String[] fileFunctions = {"New", "Open", "Close", "Exit"};
char[] fileMnemonic = {'N', 'O', 'L', 'X'};
JMenu mfile = buildMenu(menuName,fileFunctions,fileMnemonic);
menuName = "Edit";
JMenuItem item;
JMenu medit = new JMenu(menuName);
item = medit.add(new ActionSet("Undo",null));
item.setActionCommand("Undo");
item.setMnemonic('Z');
item.setAccelerator( KeyStroke.getKeyStroke('Z',java.awt.Event.CTRL_MASK,false));
item = medit.add(new ActionSet("Redo",null));
item.setActionCommand("Redo");
item.setMnemonic('Y');
item.setAccelerator( KeyStroke.getKeyStroke('Y',java.awt.Event.CTRL_MASK,false));
medit.addSeparator();
Action action = new DefaultEditorKit.CopyAction();
action.putValue(Action.NAME, "Copy");
item = medit.add(action);
item.setMnemonic('T');
item.setAccelerator( KeyStroke.getKeyStroke('T',java.awt.Event.CTRL_MASK,false));
action = new DefaultEditorKit.CutAction();
action.putValue(Action.NAME, "Cut");
item = medit.add(action);
item.setMnemonic('C');
item.setAccelerator( KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK,false));
action = new DefaultEditorKit.PasteAction();
action.putValue(Action.NAME, "Paste");
item = medit.add(action);
item.setMnemonic('P');
item.setAccelerator( KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK,false));
JMenu malign = buildAlignMenu();
menuName = "Insert";
String[] insertFunctions = {"Picture", "Object"};
char[] insertMnemonic = null;
JMenu minsert = buildMenu(menuName,insertFunctions,insertMnemonic);
menuName = "Demo";
String[] demoFunctions = {"Slider", "Tree Structure", "Table Structure", "Password"};
char[] demoMnemonic = {'S', 'T', 'A', 'P'};
JMenu mdemo = buildMenu(menuName,demoFunctions,demoMnemonic);
menuName = "Help";
String[] helpFunctions = {"About this Program", "Open Help Window"};
char[] helpMnemonic = {'B', 'H'};
JMenu mhelp = buildMenu(menuName,helpFunctions,helpMnemonic);
//設定Hot Key Alt+'?'
mfile.setMnemonic('F');
medit.setMnemonic('E');
malign.setMnemonic('A');
minsert.setMnemonic('I');
mdemo.setMnemonic('D');
mhelp.setMnemonic('H');
menuBar.add(mfile); //將 File 選項加到MenuBar中
menuBar.add(medit); //將 Edit 選項加到MenuBar中
menuBar.add(malign); //將 Align 選項加到MenuBar中
menuBar.add(mdemo); //將 Demo 選項加到MenuBar中
menuBar.add(mhelp); //將 Help 選項加到MenuBar中
topFrame.setJMenuBar(menuBar);
}//end of buildMenuBar()
public JMenu buildMenu(String menuName, String[] functions, char[] mnemonic)
{
ActionSet action;
JMenuItem item;
JMenu menu = new JMenu(menuName);
for (int i=0; i<functions.length; i++)
{
item = menu.add(new ActionSet(functions[i],null));
item.setActionCommand(functions[i]);
if (mnemonic != null)
{
item.setMnemonic(mnemonic[i]);
item.setAccelerator( KeyStroke.getKeyStroke(mnemonic[i],java.awt.Event.CTRL_MASK,false));
}
}
return menu;
}//end of buildMenu()
public JMenu buildAlignMenu()
{
JRadioButtonMenuItem aL;
JRadioButtonMenuItem aC;
JRadioButtonMenuItem aR;
JMenu malign = new JMenu("Align");
aL = new JRadioButtonMenuItem("Align Left");
aC = new JRadioButtonMenuItem("Align Center");
aR = new JRadioButtonMenuItem("Align Right");
SimpleAttributeSet attrset = new SimpleAttributeSet();
aL.addItemListener(new HandleItemEvent("LEFT",attrset));
aC.addItemListener(new HandleItemEvent("CENTER",attrset));
aR.addItemListener(new HandleItemEvent("RIGHT",attrset));
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(aL);
buttonGroup.add(aC);
buttonGroup.add(aR);
JCheckBoxMenuItem demo1 = new JCheckBoxMenuItem("demo1", true);
JCheckBoxMenuItem demo2 = new JCheckBoxMenuItem("demo2");
JCheckBoxMenuItem demo3 = new JCheckBoxMenuItem("demo3");
malign.add(aL);
malign.add(aC);
malign.add(aR);
malign.addSeparator();
malign.add(demo1);
malign.add(demo2);
malign.add(demo3);
return malign;
}//end of buildAlignMenu()
class HandleItemEvent implements ItemListener
{
String align;
SimpleAttributeSet attrset;
HandleItemEvent(String align, SimpleAttributeSet attrset)
{
this.align = align;
this.attrset = attrset;
}
public void itemStateChanged(ItemEvent e)
{
NewFrame currentFrame = (NewFrame)desktop.getSelectedFrame();
JTextPane pane = currentFrame.getTextPane();
StyledDocument docs = pane.getStyledDocument();
int offset = pane.getSelectionStart();
int end = pane.getSelectionEnd();
int selected_length = end - offset;
if(currentFrame == null) { return;}
if (align.equals("LEFT"))
StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_LEFT);
if (align.equals("CENTER"))
StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_CENTER);
if (align.equals("RIGHT"))
StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_RIGHT);
docs.setParagraphAttributes(offset, selected_length, attrset, true);
}//end of itemStateChanged()
}//end of HandleItemEvent class
public void buildToolBar()
{
JToolBar toolBar = new JToolBar();
toolBar.setFloatable(true);
String[] newFunctions = {"New"};
String[] newPics = {"icons/new16.gif"};
buildToolButton(toolBar,newFunctions,newPics);
toolBar.addSeparator();
String[] editFunctions = {"Cut","Copy","Paste"};
String[] editPics = {"icons/cut16.gif","icons/copy16.gif","icons/paste16.gif"};
bu
没有合适的资源?快使用搜索试试~ 我知道了~
swing各个组件实例演示
共400个文件
java:211个
gif:72个
jpg:64个
需积分: 9 62 下载量 163 浏览量
2008-10-27
07:04:58
上传
评论
收藏 409KB RAR 举报
温馨提示
详细的讲解javaswing的原理,并提供了java swing中个个组件使用的实例,很适用。
资源推荐
资源详情
资源评论
收起资源包目录
swing各个组件实例演示 (400个子文件)
FileChooserDemo1.class 4KB
JRadioButtonMenuItem1.class 3KB
JList8.class 3KB
JScrollBar1.class 2KB
JList7.class 2KB
FileFilterDemo.class 2KB
JList2.class 2KB
JScrollPane1.class 2KB
JList1.class 2KB
JList5.class 1KB
JList6.class 1KB
JList4.class 1KB
JList3.class 1KB
CellRenderer.class 1KB
JAVAFileFilter.class 939B
DataModel.class 915B
JRadioButtonMenuItem1$1.class 621B
FileChooserDemo1$1.class 524B
FileFilterDemo$1.class 514B
JScrollPane1$1.class 504B
JRadioButtonMenuItem1$2.class 499B
JScrollBar1$1.class 499B
JList7$1.class 474B
JList5$1.class 474B
JList4$1.class 474B
JList8$1.class 474B
JList6$1.class 474B
JList3$1.class 474B
JList8$DataModel.class 456B
JList1$1.class 454B
JList2$1.class 454B
Thumbs.db 13KB
Thumbs.db 12KB
Thumbs.db 9KB
2.gif 3KB
1.gif 3KB
javalogo2.gif 3KB
javalogo.gif 3KB
javalogo.gif 3KB
javalogo2.gif 3KB
javalogo2.gif 3KB
javalogo.gif 3KB
visa.gif 2KB
cut24.gif 1KB
file.gif 1KB
checkbox24.gif 1KB
_bold.gif 851B
_bold.gif 851B
_bold.gif 851B
_bold.gif 851B
_bold.gif 851B
_bold.gif 851B
class.gif 819B
new24.gif 778B
New24.gif 778B
radiobox24.gif 737B
leaf.gif 737B
java.gif 737B
copy24.gif 682B
Copy24.gif 682B
cut16.gif 652B
cut16.gif 652B
import24.gif 473B
export24.gif 473B
_underline.gif 472B
_underline.gif 472B
_underline.gif 472B
_underline.gif 472B
_underline.gif 472B
_underline.gif 472B
setpage24.gif 470B
open24.gif 462B
Open24.gif 462B
_italic.gif 460B
_italic.gif 460B
_italic.gif 460B
_italic.gif 460B
_italic.gif 460B
_italic.gif 460B
new16.gif 426B
new16.gif 426B
paste24.gif 374B
exit24.gif 313B
paste16.gif 298B
paste16.gif 298B
copy16.gif 288B
copy16.gif 288B
close24.gif 287B
justify24.gif 280B
open.gif 279B
close.gif 279B
center24.gif 275B
right24.gif 269B
left24.gif 267B
Save24.gif 266B
preferences24.gif 240B
underline24.gif 193B
bold24.gif 188B
italic24.gif 180B
picture.gif 175B
共 400 条
- 1
- 2
- 3
- 4
资源评论
pidouuodip
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功