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中的100个小程序例子
共833个文件
class:462个
java:211个
gif:72个
4星 · 超过85%的资源 需积分: 17 72 下载量 51 浏览量
2011-05-09
08:59:40
上传
评论
收藏 747KB RAR 举报
温馨提示
swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子swing中的100个小程序例子
资源推荐
资源详情
资源评论
收起资源包目录
swing中的100个小程序例子 (833个子文件)
chinese.html.bak 419B
chinese.html.bak 419B
MainFrame.class 8KB
MainFrame.class 7KB
MainFrame$ActionSet.class 7KB
MainFrame.class 7KB
MainFrame.class 6KB
MainFrame$ActionSet.class 6KB
MainFrame.class 6KB
JTextArea5.class 5KB
SliderDemo3.class 5KB
TreeDemo6.class 4KB
JPopupMenu1.class 4KB
JToolBar3.class 4KB
SliderDemo2.class 4KB
TimerDemo1.class 4KB
JToolBar1.class 4KB
ColorChooserDemo2.class 4KB
LF1.class 4KB
MainFrame.class 4KB
MainFrame.class 4KB
FileChooserDemo1.class 4KB
JRadioButtonMenuItem2.class 4KB
JTextArea4.class 4KB
PMInputStreamFixed.class 4KB
JRadioButtonMenuItem1.class 4KB
JCheckBoxMenuItem1.class 4KB
SliderDemo1.class 4KB
JComboBox8.class 4KB
ProgressMonitorDemo.class 3KB
PMonitorInputStream.class 3KB
TreeDemo5.class 3KB
SelectionModelDemo.class 3KB
ColorChooserDemo1.class 3KB
AddRemoveCells.class 3KB
JLayeredPane2.class 3KB
ReadDocContent.class 3KB
ReadDocContent.class 3KB
LendingSystem.class 3KB
TableEventHandle.class 3KB
TreeDemo4.class 3KB
JPopupMenu1$PopupPanel.class 3KB
ProgressBarDemo.class 3KB
JTextPane1.class 3KB
JTabbedPane2.class 3KB
MainFrame.class 3KB
JScrollPane2.class 3KB
JList8.class 3KB
ConfirmDialog.class 3KB
MouseDemo3.class 3KB
TreeDemo7.class 3KB
JRadioButton2.class 3KB
JScrollBar1.class 3KB
InputDialog.class 3KB
JMenuItem4.class 2KB
JMenuItem5.class 2KB
JRadioButton1.class 2KB
MessageDialog.class 2KB
JCheckBox2.class 2KB
FileIconFilterDemo.class 2KB
InternalDialog.class 2KB
CardLayoutDemo.class 2KB
ColorChooserDemo3.class 2KB
HtmlPane.class 2KB
HtmlPane.class 2KB
HtmlPane.class 2KB
JList7.class 2KB
FileFilterDemo.class 2KB
KeyDemo.class 2KB
JLayeredPane1.class 2KB
JInternalFrame1.class 2KB
JList2.class 2KB
JScrollPane1.class 2KB
JMenuItem3e2.class 2KB
JMenuItem3e.class 2KB
JPasswordField1.class 2KB
MainFrame$NewFrame.class 2KB
MainFrame$NewFrame.class 2KB
OptionPaneDemo.class 2KB
JTextArea1.class 2KB
GridBagLayoutDemo.class 2KB
JToolBar2.class 2KB
TreeDemo3.class 2KB
JTextField3.class 2KB
DialogAppletDemo.class 2KB
JPasswordField3.class 2KB
MouseDemo1.class 2KB
MouseDemo2.class 2KB
OptionDialog.class 2KB
DialogDemo.class 2KB
JMenuItem2e.class 2KB
JMenuItem3.class 2KB
JTextField1.class 2KB
SimpleTable2.class 2KB
JTextArea3.class 2KB
TableModel2.class 2KB
JMenuItem2.class 2KB
JComboBox6.class 2KB
JComboBox5.class 2KB
EventDemo6.class 2KB
共 833 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
chairmannmg001
- 粉丝: 912
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页