📄 mypaint.java
字号:
// 橡皮擦
ImageIcon eraserbug = new ImageIcon( getClass().getResource("/eraser.GIF"));
eraserButton = new JToggleButton( eraserbug );
eraserButton.setToolTipText( "橡皮擦" );
eraserButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
state.setText( "用选定大小的橡皮擦涂去图形的一部分" );
modelPanel.setVisible( false );
brushPanel.setVisible( false );
drawPanel.setTool( MyPanel.TOOL_ERASER );
}
}
);
toolsGroup.add( eraserButton );
mediumPanel2.add( eraserButton );
// 多边形
polygonButton = new JToggleButton( polygonicon );
polygonButton.setToolTipText( "多边形" );
polygonButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
state.setText( "用选定的填充模式画多边形" );
modelPanel.setVisible( true );
brushPanel.setVisible( false );
drawPanel.setTool( MyPanel.TOOL_POLYGON );
}
}
);
toolsGroup.add( polygonButton );
mediumPanel2.add( polygonButton );
/**
* 作者:钟雯
* 实现画刷功能及模式选择
* 初始时间:2007 5-20
* 最后一次修改时间:2007 6-13
*/
// 画刷
brushButton = new JToggleButton( brushicon );
brushButton.setToolTipText( "刷子" );
brushButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
state.setText( "按选定的形状和大小使用刷子绘图" );
modelPanel.setVisible( false );
brushPanel.setVisible( true );
drawPanel.setTool( MyPanel.TOOL_POLYGON );
}
}
);
/**
* 作者:钟雯
* 实现规则图形的填充功能
* 初始时间:2007 5-23
* 最后一次修改时间:2007 6-15
*/
fillButton = new JToggleButton( fillicon );
fillButton.setToolTipText("填充") ;
fillButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e){
undoItem.setEnabled( true );
redoItem.setEnabled( true );
state.setText( "按选定的形状和大小使用填充绘图" );
modelPanel.setVisible( false );
brushPanel.setVisible( false );
drawPanel.setTool( MyPanel.TOOL_FILL );
}
}
);
toolsGroup.add( fillButton );
mediumPanel2.add( fillButton );
toolsPanel.add( mediumPanel2 );
mediumPanel1.add( toolsPanel );
toolsGroup.add( brushButton );
mediumPanel2.add( brushButton );
toolsPanel.add( mediumPanel2 );
mediumPanel1.add( toolsPanel );
/**
* 作者:钟雯
* 实现文字功能及其格式选择
* 初始时间:2007 5-20
* 最后一次修改时间:2007 6-13
*/
//文字
wordPanel.setBorder( new TitledBorder( null, "Word Tool", TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK ) );
mediumPanel3.setLayout( new GridLayout( 4, 1, 0, 2 ) );
wordButton = new JToggleButton( wordicon );
wordButton.setToolTipText( "文字" );
wordButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
state.setText( "在图片中插入文字" );
modelPanel.setVisible( false );
brushPanel.setVisible( false );
drawPanel.setTool( MyPanel.TOOL_WORD );
}
}
);
mediumPanel3.add( wordButton );
//字体类型
fontPanel.setLayout( new GridLayout( 1, 2, 3, 0 ) );
CheckBoxHandler handler = new CheckBoxHandler();
bold = new JCheckBox( "B" );
bold.addItemListener( handler );
fontPanel.add( bold );
italic = new JCheckBox( "I" );
italic.addItemListener( handler );
fontPanel.add( italic );
mediumPanel3.add( fontPanel );
// 字体风格
stylescombo = new JComboBox( styleNames );
stylescombo.setForeground( Color.BLUE );
stylescombo.setMaximumRowCount( 8 );
stylescombo.setBorder( new LineBorder( Color.BLUE ) );
stylescombo.addItemListener(
new ItemListener() {
public void itemStateChanged( ItemEvent e )
{
style1 = styleNames[stylescombo.getSelectedIndex()];
drawPanel.setStyle1( style1 );
}
}
);
mediumPanel3.add( stylescombo );
//字体大小
sizecombo = new JComboBox( sizes );
sizecombo.setMaximumRowCount( 8 );
sizecombo.setForeground( Color.MAGENTA );
sizecombo.setBorder( new LineBorder( Color.BLUE ) );
sizecombo.addItemListener(
new ItemListener() {
public void itemStateChanged( ItemEvent e )
{
number =Integer.parseInt(sizes[sizecombo.getSelectedIndex()]);
drawPanel.setNumber(number);
}
}
);
mediumPanel3.add( sizecombo );
wordPanel.add( mediumPanel3 );
mediumPanel1.add( wordPanel );
//各类工具的宽度
mediumPanel4.setBorder( new TitledBorder( null, "Size Setting", TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK ) );
mediumPanel4.setLayout( new BorderLayout( 0, 3 ) );
weightcombo.setFont( new Font("Dialog", 0, 10 ) );
weightcombo.setModel( new DefaultComboBoxModel(new String[] { "Stroke Weight 1.0px", "Stroke Weight 2.0px",
"Stroke Weight 5.0px", "Stroke Weight 7.5px", "Stroke Weight 10.0px","Stroke Weight 15.0px" } ) );
weightcombo.setForeground( Color.BLUE );
weightcombo.setBorder( new LineBorder( Color.BLUE ) );
weightcombo.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
drawPanel.setStrokeIndex( weightcombo.getSelectedIndex() );
}
}
);
mediumPanel4.add( weightcombo, BorderLayout.NORTH );
//设置橡皮擦的宽度
erasercombo.setFont(new Font("Dialog", 0, 10));
erasercombo.setModel(new DefaultComboBoxModel( new String[] { "Eraser Size 15px", "Eraser Size 20px",
"Eraser Size 30px", "Eraser Size 50px", "Eraser Size 100px" } ) );
erasercombo.setForeground( Color.BLUE );
erasercombo.setBorder( new LineBorder( Color.BLUE ) );
erasercombo.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
drawPanel.setEraserIndex( erasercombo.getSelectedIndex() );
}
}
);
mediumPanel4.add( erasercombo, BorderLayout.SOUTH );
sizePanel.add( mediumPanel4 );
mediumPanel1.add( sizePanel );
//各种图形的 三种模式
mediumPanel5.setBorder( new TitledBorder( null, "Model", TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK ) );
mediumPanel5.setLayout( new GridLayout( 3, 1, 0, 5 ) );
//模式1
model1Button = new JToggleButton( model1icon );
model1Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
drawPanel.setModel(MyPanel.MODEL1);
}
}
);
mediumPanel5.add( model1Button );
//模式2
model2Button = new JToggleButton( model2icon );
model2Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
drawPanel.setModel(MyPanel.MODEL2);
}
}
);
mediumPanel5.add( model2Button );
//模式3
model3Button = new JToggleButton( model3icon );
model3Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
drawPanel.setModel(MyPanel.MODEL3);
}
}
);
mediumPanel5.add( model3Button );
modelPanel.add( mediumPanel5 );
modelPanel.setVisible( false );
mediumPanel1.add( modelPanel );
// 画刷下的各种模式
mediumPanel6.setBorder( new TitledBorder( null, "Brush Model Setting", TitledBorder.DEFAULT_JUSTIFICATION , TitledBorder.CENTER , new Font( "Dialog", Font.BOLD+Font.ITALIC, 13 ), Color.BLACK ) );
mediumPanel6.setLayout( new GridLayout( 1, 2, 5, 0 ) );
circlePanel.setLayout( new GridLayout( 3, 1, 0, 5 ) );
//圆形模式1
brush0Button = new JToggleButton( circle1icon );
brush0Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
drawPanel.setTool(MyPanel.TOOL_CIRCLE1);
}
}
);
circlePanel.add( brush0Button );
//圆形模式2
brush1Button = new JToggleButton( circle2icon );
brush1Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
drawPanel.setTool(MyPanel.TOOL_CIRCLE2);
}
}
);
circlePanel.add( brush1Button );
//圆形模式3
brush2Button = new JToggleButton( circle3icon );
brush2Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
drawPanel.setTool(MyPanel.TOOL_CIRCLE3);
}
}
);
circlePanel.add( brush2Button );
//方形模式1
squarePanel.setLayout( new GridLayout( 3, 1, 0, 5 ) );
brush3Button = new JToggleButton( square1icon);
brush3Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
drawPanel.setTool( MyPanel.TOOL_SQUARE1);
}
}
);
squarePanel.add( brush3Button );
//方形模式2
brush4Button = new JToggleButton( square2icon);
brush4Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
drawPanel.setTool( MyPanel.TOOL_SQUARE2 );
}
}
);
squarePanel.add( brush4Button );
//方形模式3
brush5Button = new JToggleButton( square3icon );
brush5Button.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
undoItem.setEnabled( true );
redoItem.setEnabled( true );
drawPanel.setTool( MyPanel.TOOL_SQUARE3);
}
}
);
squarePanel.add( brush5Button );
mediumPanel6.add( circlePanel );
mediumPanel6.add( squarePanel );
brushPanel.add( mediumPanel6 );
brushPanel.setVisible( false );
mediumPanel1.add( brushPanel );
/**
* 指示 Component 已获得或失去输入焦点的低级别事件即scrollpanel的引入
*/
drawPanel.addFocusListener(
new FocusListener() {
public void focusGained(FocusEvent e1)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -