📄 frame.java
字号:
package graphics0;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import java.awt.image.*;
/**
* <p>Title: computer graphics </p>
* <p>Description: homeworks</p>
* <p>Copyright: Copyright (c) 2004 </p>
* <p>Company: shu</p>
* @author dxf
* @version 1.0
*/
public class Frame extends JFrame {
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JToolBar jToolBar = new JToolBar();
JButton jBtnClear = new JButton();
ImageIcon image1;
ImageIcon image2;
ImageIcon image3;
JLabel statusBar = new JLabel();
BorderLayout borderLayout1 = new BorderLayout();
JColorChooser jColorChooser1 = new JColorChooser();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
BorderLayout borderLayout3 = new BorderLayout();
ButtonGroup rbtnGL = new ButtonGroup();
JPanel jPanel4 = new JPanel();
BorderLayout borderLayout5 = new BorderLayout();
JPanel jPanel5 = new JPanel();
JPanel jPanel6 = new JPanel();
JPanel jPanel7 = new JPanel();
GridBagLayout gridBagLayout1 = new GridBagLayout();
JLabel jLabel4 = new JLabel();
JTextField jTextFieldLWidth = new JTextField();
DrawPanel jPanelD = new DrawPanel(this);
ButtonGroup rbtnGLCE = new ButtonGroup();
GridLayout gridLayout1 = new GridLayout();
FlowLayout flowLayout1 = new FlowLayout();
JButton jBtnHelp = new JButton();
JComboBox jComboBoxL = new JComboBox();
JLabel jLabel7 = new JLabel();
ButtonGroup rbtnGFill = new ButtonGroup();
JRadioButton jRBtnFill = new JRadioButton();
JRadioButton jRBtnUnFill = new JRadioButton();
JMenu jMenuL = new JMenu();
JMenu jMenu2 = new JMenu();
JCheckBoxMenuItem jCheckBoxMenuItemDemo = new JCheckBoxMenuItem();
JRadioButtonMenuItem jRBtnMenuItemLM = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtnMenuItemE = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtnMenuItemLB = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtnMenuItemLD = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtnMenuItemC = new JRadioButtonMenuItem();
JButton jBtnBkColor = new JButton();
JLabel jLabel6 = new JLabel();
JButton jBtnForeColor = new JButton();
JLabel jLabel5 = new JLabel();
JMenu jMenuFill = new JMenu();
JRadioButtonMenuItem jRBtnMenuItemP = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtMenuItemFS4 = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtMenuItemF4 = new JRadioButtonMenuItem();
JRadioButtonMenuItem jRBtMenuItemF8 = new JRadioButtonMenuItem();
ButtonGroup rbtnGFillMethod = new ButtonGroup();
JRadioButtonMenuItem jRBtMenuItemFP = new JRadioButtonMenuItem();
ButtonGroup rbtnGCut = new ButtonGroup();
BorderLayout borderLayout4 = new BorderLayout();
JPanel jPanel3 = new JPanel();
BorderLayout borderLayout6 = new BorderLayout();
JPanel jPanel8 = new JPanel();
JPanel jPanel9 = new JPanel();
JLabel jLabel2 = new JLabel();
JTextField jTFTH = new JTextField();
BorderLayout borderLayout8 = new BorderLayout();
JButton jBtnScale = new JButton();
JPanel jPanel11 = new JPanel();
JLabel jLabel3 = new JLabel();
JTextField jTFTY = new JTextField();
BorderLayout borderLayout9 = new BorderLayout();
JButton jBtnTranslate = new JButton();
JPanel jPanel12 = new JPanel();
JLabel jLabel8 = new JLabel();
JTextField jTFTX = new JTextField();
BorderLayout borderLayout10 = new BorderLayout();
JPanel jPanel13 = new JPanel();
BorderLayout borderLayout11 = new BorderLayout();
JPanel jPanel14 = new JPanel();
JPanel jPanel15 = new JPanel();
JPanel jPanel10 = new JPanel();
JLabel jLabel1 = new JLabel();
JTextField jTFTW = new JTextField();
BorderLayout borderLayout7 = new BorderLayout();
BorderLayout borderLayout12 = new BorderLayout();
JPanel jPanel17 = new JPanel();
JLabel jLabel9 = new JLabel();
JTextField jTFTheta = new JTextField();
BorderLayout borderLayout14 = new BorderLayout();
JButton jBtnRotate = new JButton();
JPanel jPanel20 = new JPanel();
JPanel jPanel21 = new JPanel();
JPanel jPanel22 = new JPanel();
BorderLayout borderLayout17 = new BorderLayout();
BorderLayout borderLayout18 = new BorderLayout();
BorderLayout borderLayout19 = new BorderLayout();
JPanel jPanel23 = new JPanel();
BorderLayout borderLayout20 = new BorderLayout();
JPanel jPanel16 = new JPanel();
GridBagLayout gridBagLayout2 = new GridBagLayout();
JLabel jLabel12 = new JLabel();
JLabel jLabel13 = new JLabel();
JTextField jTFCX = new JTextField();
JTextField jTFCY = new JTextField();
JToggleButton jToggleButton1 = new JToggleButton();
JToggleButton jTBtnCentre = new JToggleButton();
//Construct the frame
public Frame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
image1 = new ImageIcon(graphics0.Frame.class.getResource("openFile.png"));
image2 = new ImageIcon(graphics0.Frame.class.getResource("closeFile.png"));
image3 = new ImageIcon(graphics0.Frame.class.getResource("help.png"));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setFont(new java.awt.Font("Dialog", 0, 14));
this.setSize(new Dimension(437, 500));
this.setTitle("2D");
statusBar.setBackground(SystemColor.desktop);
statusBar.setText(" ");
jMenuFile.setText("homework");
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new Frame_jMenuHelpAbout_ActionAdapter(this));
jBtnClear.setText("Clear");
jBtnClear.addActionListener(new Frame_jBtnClear_actionAdapter(this));
jBtnClear.setToolTipText("Clear");
jBtnClear.setVerifyInputWhenFocusTarget(true);
jBtnClear.setIcon(null);
image1.setDescription("vfs:///file:///E:/My Documents/jbproject/graphics0/classes/graphics0/openFile.png");
contentPane.setBackground(SystemColor.text);
contentPane.setFont(new java.awt.Font("Dialog", 0, 12));
jPanel1.setLayout(borderLayout2);
jPanel2.setBackground(Color.pink);
jPanel2.setRequestFocusEnabled(true);
jPanel2.setLayout(borderLayout3);
jPanel4.setLayout(borderLayout5);
jPanel6.setBackground(Color.pink);
jPanel6.setLayout(borderLayout4);
jPanel5.setBackground(Color.green);
jPanel5.setLayout(gridLayout1);
jPanel7.setBackground(Color.pink);
jPanel7.setBorder(BorderFactory.createLoweredBevelBorder());
jPanel7.setDebugGraphicsOptions(0);
jPanel7.setLayout(gridBagLayout1);
jLabel4.setText("线宽");
jTextFieldLWidth.setText("1");
jTextFieldLWidth.addFocusListener(new Frame_jTextFieldLWidth_focusAdapter(this));
gridLayout1.setColumns(2);
gridLayout1.setRows(2);
jBtnHelp.setToolTipText("Help");
jBtnHelp.setIcon(image3);
jBtnHelp.addActionListener(new Frame_jBtnHelp_actionAdapter(this));
jLabel7.setText("线型");
jRBtnFill.setSelected(false);
jRBtnFill.setText("填充");
jRBtnUnFill.setSelected(true);
jRBtnUnFill.setText("不填充");
jMenu2.setText("Option");
jCheckBoxMenuItemDemo.setText("Demo");
jCheckBoxMenuItemDemo.addActionListener(new Frame_jCheckBoxMenuItemDemo_actionAdapter(this));
jMenuL.setText("Line");
jRBtnMenuItemLM.setText("MidPoint");
jRBtnMenuItemLM.addActionListener(new Frame_jRBtnMenuItemLM_actionAdapter(this));
jRBtnMenuItemE.setText("Ellipse");
jRBtnMenuItemE.addActionListener(new Frame_jRBtnMenuItemE_actionAdapter(this));
jRBtnMenuItemLB.setText("Bresenham");
jRBtnMenuItemLB.addActionListener(new Frame_jRBtnMenuItemLB_actionAdapter(this));
jRBtnMenuItemLD.setToolTipText("");
jRBtnMenuItemLD.addActionListener(new Frame_jRBtnMenuItemLD_actionAdapter(this));
jRBtnMenuItemLD.setArmed(false);
jRBtnMenuItemLD.setSelected(false);
jRBtnMenuItemLD.setText("DDA");
jRBtnMenuItemC.setArmed(false);
jRBtnMenuItemC.setSelected(false);
jRBtnMenuItemC.setText("Circle");
jRBtnMenuItemC.setToolTipText("");
jRBtnMenuItemC.addActionListener(new Frame_jRBtnMenuItemC_actionAdapter(this));
jBtnBkColor.setText("选择");
jBtnBkColor.addActionListener(new Frame_jBtnBkColor_actionAdapter(this));
jLabel6.setText("背景色");
jBtnForeColor.setText("选择");
jBtnForeColor.addActionListener(new Frame_jBtnForeColor_actionAdapter(this));
jLabel5.setText("前景色");
jMenuFill.setText("Fill");
jRBtnMenuItemP.setText("Ploygon");
jRBtnMenuItemP.setToolTipText("");
jRBtnMenuItemP.addActionListener(new Frame_jRBtnMenuItemP_actionAdapter(this));
jRBtMenuItemFS4.setText("ScanLineFill4");
jRBtMenuItemFS4.setToolTipText("");
jRBtMenuItemFS4.addActionListener(new Frame_jRBtMenuItemFS4_actionAdapter(this));
jRBtMenuItemF4.setText("FloodFill4");
jRBtMenuItemF4.addActionListener(new Frame_jRBtMenuItemF4_actionAdapter(this));
jRBtMenuItemF8.setText("FloodFill8");
jRBtMenuItemF8.addActionListener(new Frame_jRBtMenuItemF8_actionAdapter(this));
jRBtMenuItemFP.setText("PolyFill");
jRBtMenuItemFP.addActionListener(new Frame_jRBtMenuItemFP_actionAdapter(this));
jPanel3.setLayout(borderLayout6);
jLabel2.setText("Height");
jPanel8.setLayout(borderLayout8);
jTFTH.setText("");
jBtnScale.setText("缩放");
jBtnScale.addActionListener(new Frame_jBtnScale_actionAdapter(this));
jPanel11.setLayout(borderLayout10);
jLabel3.setPreferredSize(new Dimension(17, 16));
jLabel3.setText("Y= ");
jTFTY.setText("");
jBtnTranslate.setText("平移");
jBtnTranslate.addActionListener(new Frame_jBtnTranslate_actionAdapter(this));
jPanel12.setLayout(borderLayout9);
jLabel8.setText("X= ");
jTFTX.setText("");
jPanel14.setLayout(borderLayout11);
jLabel1.setText("width ");
jPanel15.setLayout(borderLayout7);
jTFTW.setText("");
jPanel10.setLayout(borderLayout12);
jLabel9.setText("角度");
jTFTheta.setSelectionStart(11);
jTFTheta.setText("1");
jPanel17.setLayout(borderLayout14);
jBtnRotate.setText("旋转");
jBtnRotate.addActionListener(new Frame_jBtnRotate_actionAdapter(this));
jPanel20.setLayout(borderLayout17);
jPanel22.setLayout(borderLayout18);
jPanel21.setLayout(borderLayout19);
jPanel23.setLayout(borderLayout20);
jPanel16.setLayout(gridBagLayout2);
jLabel12.setText("X=");
jLabel13.setText("Y=");
jTFCX.setText("0");
jTFCX.addActionListener(new Frame_jTFCX_actionAdapter(this));
jTFCY.setText("0");
jTBtnCentre.setText("定义旋转中心");
jTBtnCentre.setText("定义旋转中心");
jToolBar.add(jBtnHelp, null);
jToolBar.add(jBtnClear);
contentPane.add(statusBar, BorderLayout.SOUTH);
jMenuFile.add(jRBtnMenuItemC);
jMenuFile.add(jRBtnMenuItemE);
jMenuFile.add(jRBtnMenuItemP);
jMenuFile.add(jMenuL);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenuFill);
this.setJMenuBar(jMenuBar1);
contentPane.add(jToolBar, BorderLayout.NORTH);
contentPane.add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jPanel2, BorderLayout.EAST);
jPanel2.add(jPanel4, BorderLayout.CENTER);
jPanel4.add(jPanel5, BorderLayout.SOUTH);
jPanel4.add(jPanel6, BorderLayout.CENTER);
jPanel6.add(jPanel3, BorderLayout.NORTH);
jPanel3.add(jPanel8, BorderLayout.CENTER);
jPanel8.add(jTFTH, BorderLayout.CENTER);
jPanel8.add(jLabel2, BorderLayout.WEST);
jPanel3.add(jPanel9, BorderLayout.SOUTH);
jPanel9.add(jBtnScale, null);
jPanel3.add(jPanel15, BorderLayout.NORTH);
jPanel15.add(jTFTW, BorderLayout.CENTER);
jPanel15.add(jLabel1, BorderLayout.WEST);
jPanel6.add(jPanel14, BorderLayout.SOUTH);
jPanel12.add(jTFTY, BorderLayout.CENTER);
jPanel12.add(jLabel3, BorderLayout.WEST);
jPanel6.add(jPanel10, BorderLayout.CENTER);
jPanel10.add(jPanel17, BorderLayout.SOUTH);
jPanel20.add(jPanel22, BorderLayout.NORTH);
jPanel20.add(jPanel21, BorderLayout.CENTER);
jPanel10.add(jPanel23, BorderLayout.NORTH);
jPanel23.add(jLabel9, BorderLayout.NORTH);
jPanel23.add(jTFTheta, BorderLayout.CENTER);
jPanel10.add(jPanel16, BorderLayout.CENTER);
jPanel16.add(jTBtnCentre, new GridBagConstraints(0, 3, 3, 1, 0.0, 0.0
,GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(14, -5, 7, 5), 0, 0));
jPanel16.add(jLabel13, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel16.add(jLabel12, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel16.add(jTFCY, new GridBagConstraints(2, 1, 1, 2, 0.0, 0.0
,GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 18, 0));
jPanel16.add(jTFCX, new GridBagConstraints(1, 0, 2, 1, 0.0, 0.0
,GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, -1, 0, 1), 21, 0));
jPanel16.add(jTBtnCentre, new GridBagConstraints(2, 3, 2, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel14.add(jPanel13, BorderLayout.SOUTH);
jPanel13.add(jBtnTranslate, null);
jPanel14.add(jPanel11, BorderLayout.NORTH);
jPanel14.add(jPanel12, BorderLayout.CENTER);
jPanel11.add(jLabel8, BorderLayout.WEST);
jPanel11.add(jTFTX, BorderLayout.CENTER);
jPanel4.add(jPanel7, BorderLayout.NORTH);
jPanel7.add(jLabel6, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel7.add(jBtnForeColor, new GridBagConstraints(1, 0, 1, 2, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel7.add(jLabel5, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel7.add(jBtnBkColor, new GridBagConstraints(1, 2, 1, 2, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel7.add(jLabel4, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel7.add(jLabel7, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel7.add(jTextFieldLWidth, new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 5, 0, 16), 34, 0));
jPanel7.add(jComboBoxL, new GridBagConstraints(1, 5, 1, 2, 0.0, 0.0
,GridBagConstraints.SOUTH, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 26, 0));
jPanel1.add(jPanelD, BorderLayout.CENTER);
jToolBar.add(jRBtnFill, null);
jPanelD.iLine = 0;
jPanelD.iObject = 0;
jPanelD.lWidth = Integer.parseInt(jTextFieldLWidth.getText());
jComboBoxL.addItem("虚线");
jComboBoxL.addItem("实线");
jComboBoxL.addItem("点线");
jComboBoxL.setSelectedIndex(1);
rbtnGFill.add(jRBtnFill);
rbtnGFill.add(jRBtnUnFill);
jToolBar.add(jRBtnUnFill, null);
jMenuL.add(jRBtnMenuItemLD);
jMenuL.add(jRBtnMenuItemLM);
jMenuL.add(jRBtnMenuItemLB);
jMenu2.add(jCheckBoxMenuItemDemo);
jMenuFill.add(jRBtMenuItemF8);
jMenuFill.add(jRBtMenuItemF4);
jMenuFill.add(jRBtMenuItemFS4);
jMenuFill.add(jRBtMenuItemFP);
rbtnGFillMethod.add(jRBtMenuItemF8);
rbtnGFillMethod.add(jRBtMenuItemF4);
rbtnGFillMethod.add(jRBtMenuItemFS4);
rbtnGFillMethod.add(jRBtMenuItemFP);
rbtnGLCE.add(jRBtnMenuItemE);
rbtnGLCE.add(jRBtnMenuItemC);
rbtnGLCE.add(jRBtnMenuItemP);
rbtnGL.add(jRBtnMenuItemLD);
rbtnGL.add(jRBtnMenuItemLB);
rbtnGL.add(jRBtnMenuItemLM);
jPanel17.add(jBtnRotate, BorderLayout.SOUTH);
}
//File | Exit action performed
public void jMenuFileExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
//Help | About action performed
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
Frame_AboutBox dlg = new Frame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -