📄 configdialog.java
字号:
package SnakeGame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ConfigDialog extends JDialog
{
private Container c;
private JFrame owner;
private OwnPanel[] panel = new OwnPanel[4];
Box box1, box2;
private JButton commitButton, cancelButton;
Color[] color = new Color[4];
public ConfigDialog( Frame owner )
{
this.owner = (JFrame) owner;
this.setSize( 400, 200 );
this.setResizable( false );
this.setTitle( "Config Your Game" );
this.c = this.getContentPane();
this.c.setBackground( Color.WHITE );
this.c.setLayout( new FlowLayout() );
this.box1 = Box.createVerticalBox();
for( int i = 0; i < panel.length; i++ )
{
panel[i] = new OwnPanel();
panel[i].addActionListener( new ActionHandler() );
this.box1.add( panel[i] );
this.box1.add( Box.createVerticalStrut( 4 ) );
}
this.panel[0].setText( " Background" );
this.panel[1].setText( " Snake" );
this.panel[2].setText( " Bean" );
this.panel[3].setText( " EatedBean" );
this.panel[0].setBack( ColorGroup.COLOR_BACK );
this.panel[1].setBack( ColorGroup.COLOR_SNAKE );
this.panel[2].setBack( ColorGroup.COLOR_BEAN );
this.panel[3].setBack( ColorGroup.COLOR_EATEDBEAN );
this.box2 = Box.createHorizontalBox();
this.commitButton = new JButton( "确定" );
this.commitButton.setFont( Font.getFont( "Fixedsys" ) );
this.commitButton.addActionListener( new ActionHandler() );
this.cancelButton = new JButton( "取消" );
this.cancelButton.setFont( Font.getFont( "Fixedsys" ) );
this.cancelButton.addActionListener( new ActionHandler() );
this.box2.add( this.commitButton );
this.box2.add( Box.createHorizontalStrut( 20 ) );
this.box2.add( this.cancelButton );
this.box1.add( this.box2 );
this.c.add( this.box1, BorderLayout.NORTH );
this.setLocation( ( this.getToolkit().getScreenSize().width - this.getWidth() )/2,
( this.getToolkit().getScreenSize().height - this.getHeight() )/2 );
this.setVisible( true );
}
public void setOwnerColor( Color temp )
{
this.owner.getContentPane().setBackground( temp );
}
private class ActionHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
for( int i = 0; i < color.length; i++ )
{
if( e.getSource() == panel[i].reButton() )
{
color[i] = JColorChooser.showDialog( ConfigDialog.this,
"Choose BackGround Color",
Color.WHITE );
if( color[i] != null )
{
panel[i].setBack( color[i] );
}
}
}
if( e.getSource() == commitButton )
{
color[0] = (color[0]==null?ColorGroup.COLOR_BACK:color[0]);
color[1] = (color[1]==null?ColorGroup.COLOR_SNAKE:color[1]);
color[2] = (color[2]==null?ColorGroup.COLOR_BEAN:color[2]);
color[3] = (color[3]==null?ColorGroup.COLOR_EATEDBEAN:color[3]);
ConfigDialog.this.setVisible( false );
ColorGroup.setCOLOR_BACK( color[0] );
owner.getContentPane().setBackground( color[0] );
ColorGroup.setCOLOR_SNAKE( color[1] );
ColorGroup.setCOLOR_BEAN( color[2] );
ColorGroup.setCOLOR_EATEDBEAN( color[3] );
ConfigDialog.this.dispose();
}
else if( e.getSource() == cancelButton )
{
ConfigDialog.this.setVisible( false );
ConfigDialog.this.dispose();
}
}
}
}
class OwnPanel extends JPanel
{
private JLabel temp1;
private JTextField temp2;
private JButton temp3;
OwnPanel()
{
temp1 = new JLabel();
temp1.setFont( Font.getFont( "Fixedsys" ) );
temp2 = new JTextField();
temp3 = new JButton( "Change" );
temp3.setFont( Font.getFont( "Fixedsys" ) );
temp2.setEditable( false );
temp2.setColumns( 10 );
this.add( temp1 );
this.add( temp2 );
this.add( temp3 );
this.setLayout( new GridLayout( 1, 3 ) );
}
public void setButtonName( String temp )
{
temp3.setName( temp );
}
public void setBack( Color temp )
{
temp2.setBackground( temp );
}
public void setText( String temp )
{
temp1.setText( temp );
}
public Object reButton()
{
return temp3;
}
public void addActionListener( ActionListener ac )
{
temp3.addActionListener( ac );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -