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小程序,对界面实际很有用 Swing 是一个为Java设计的GUI工具包。 Swing 是 JAVA基础类 的一部分。 Swing 包括了图形用户界面 (GUI) 器件 如:文本框,按钮,分隔窗格和表。 SWING 提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。 它们是JFC的一部分。 它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。 轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
资源推荐
资源详情
资源评论
收起资源包目录
100个Java swing的小程序 (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
wandersss
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页