import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class Painter2 extends JFrame
{
private int topX,topY,width,fontSize,
height,bottomX,bottomY,shape;
private boolean clear,textOn,filled;
private Color drawingColor;
private String font;
private JTextField text;
private JPanel panel1,panel2,panel3;
private JRadioButton ovalBox,rectBox,lineBox;
private ButtonGroup shapeGroup;
private JCheckBox fillBox;
private JComboBox colorList, fontList, sizeList;
private JButton clearButton;
private String colorNames[] = {"Black", "Green", "Blue", "Red", "Cyan"
};
private Color colors [] = { Color.black, Color.green, Color.blue, Color.red, Color.cyan };
private String fontNames[] = { "Serif", "SansSerif", "Monospaced"
}; private String szieNames[] = { "9", "10", "22", "72" };
private int sizes[] = { 9, 10, 22, 72 };
private final int OVAL = 1, LINE = 2, RECT = 3;
private ToolWindow tools;
public Painter2 ()
{
addMouseListener( new MouseHandler() );
drawingColor = Color.black;
shape = OVAL;
font = "Serif";
fontSize = 9;
setSize( 300,300 );
setVisible( true );
tools = new ToolWindow();
}
public void paint( Graphics g)
{
g.setColor( drawingColor );
if ( textOn )
{
g.setFont( new Font( font,Font.PLAIN, fontSize) );
g.drawString ( text.getText(), topX, topY );
textOn = false;
return;
}
if (shape != LINE)
{
topX = Math.min( topX,bottomX );
topY = Math.min( topY,bottomY );
}
if (filled && shape != LINE )
switch ( shape )
{
case OVAL:
g.fillOval(topX, topY, width, height );
break;
case RECT:
g.fillRect(topX, topY, width, height );
break;
}
else
switch (shape) {
case OVAL:
g.drawOval (topX, topY, width, height );
break;
case LINE:
g.drawLine(topX, topY, width, height );
break;
case RECT:
g.drawRect( topX, topY, width, height );
break;
}
if ( clear == true )
{ g.setColor( Color.white);
g.fillRect( 0,0, getSize().width, getSize().height );
clear = false;
}
}
private class ToolWindow extends JFrame {
public ToolWindow()
{
text = new JTextField( "Text", 20 );
text.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{
textOn = true;
repaint();
}
}
);
fontList = new JComboBox( fontNames );
fontList.setMaximumRowCount( 3 );
fontList.addItemListener(
new ItemListener(){
public void itemStateChanged( ItemEvent event )
{
font = fontNames [ fontList.getSelectedIndex() ];
}
}
);
sizeList = new JComboBox( sizeNames );sizeList.setMaximumRowCount( 3 );
sizeList.addItemListener(new ItemListener()
{
public void itemStateChanged( ItemEvent event )
{
font = fontSize [ sizeList.getSelectedIndex() ];
}
}
); colorList = new JComboBox( colorNames );colorList.setMaximumRowCount( 3 );
colorList.addItemListener(new ItemListener()
{
public void itemStateChanged( ItemEvent event )
{
drawingColor = colors [ colorList.getSelectedIndex() ];
}
}
);
clearButton = new JButton( "Clear" );
clearButton.addActionListener( new ClearButtonHandler() );
fillBox = new JCheckBox( "filled" );
FillBoxHandler fillHandle = new FillBoxHandler();
fillBox.addItemListener( fillHandle );
ovalBox = new JRadioButton ( "Oval", true );
lineBox = new JRadioButton ( "Line", false );
rectBox = new JRadioButton ( "Rectangle", false );
RadioButtonHandler handler = new RadioButtonHandler();
ovalBox.addItemListener( handler );
lineBox.addItemListener( handler );
rectBox.addItemListener( handler );
shapeGroup.add( ovalBox );
shapeGroup.add( lineBox );
shapeGroup.add( rectBox );
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel1.setLayout( new GridLayout( 1, 3));
panel2.setLayout( new GridLayout( 1, 2));
panel3.setLayout( new GridLayout( 1, 3)); panel1.add( ovalBox );
panel1.add( lineBox );
panel2.add( fillBox );
panel2.add( clearButton );
panel3.add( new JScrollPane( colorList ));
panel3.add( new JScrollPane ( fontList ));
panel3.add( new JScrollPane ( sizeList ) );
Container container = getContentpane();
Container.setLayout( new FlowLayout() );
Container.add( panel1 );
Container.add( panel2 );
Container.add( panel3 );
Container.add( text );setSize( 350,200 );
setLocation ( 300, 0 );
setVisible ( true );
}
}
private class MouseHandler extends MouseAdapter
{
public void mousePressed( MouseEvent event )
{
topX = event.getX();
topY = event.getY();
}
public void mouseReleased ( MouseEvent event )
{
bottomX = event.getX();
bottomY = event.getY();
width = Math.ads( topX - bottomX );
height = Math.ads( topY - bottomY );
repaint();
}
} private class ClearButtonHandlera implements ActionListener
{
public void actionPerformed ( ActionEvent event )
{
clear = true;
repaint();
}
} private class RadioButtonHandler implements ItemListener
{
public void itemStateChanged( ItemEvent event )
{
if ( event.getSource() == ovalBox )
shape = OVAL;
else if ( event.getSource() == lineBox )
shape = LINE;
if ( event.getSource() == rectBox )
shape = RECT;
}
}
private class FillBoxHander implements ItemListener
{
public void itemStateChanged( ItemEvent event )
{
if ( event.getStateChange() == ItemEvent.SELECTED )
filled = true;
else
filled = false;
}
}
public static void main ( String arg[] )
{
Painter2 application = new Painter2 ();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); }
}
修改了3个小时还是不知道怎么修改好.求救一下
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class Painter2 extends JFrame
{
private int topX,topY,width,fontSize,
height,bottomX,bottomY,shape;
private boolean clear,textOn,filled;
private Color drawingColor;
private String font;
private JTextField text;
private JPanel panel1,panel2,panel3;
private JRadioButton ovalBox,rectBox,lineBox;
private ButtonGroup shapeGroup;
private JCheckBox fillBox;
private JComboBox colorList, fontList, sizeList;
private JButton clearButton;
private String colorNames[] = {"Black", "Green", "Blue", "Red", "Cyan"
};
private Color colors [] = { Color.black, Color.green, Color.blue, Color.red, Color.cyan };
private String fontNames[] = { "Serif", "SansSerif", "Monospaced"
}; private String szieNames[] = { "9", "10", "22", "72" };
private int sizes[] = { 9, 10, 22, 72 };
private final int OVAL = 1, LINE = 2, RECT = 3;
private ToolWindow tools;
public Painter2 ()
{
addMouseListener( new MouseHandler() );
drawingColor = Color.black;
shape = OVAL;
font = "Serif";
fontSize = 9;
setSize( 300,300 );
setVisible( true );
tools = new ToolWindow();
}
public void paint( Graphics g)
{
g.setColor( drawingColor );
if ( textOn )
{
g.setFont( new Font( font,Font.PLAIN, fontSize) );
g.drawString ( text.getText(), topX, topY );
textOn = false;
return;
}
if (shape != LINE)
{
topX = Math.min( topX,bottomX );
topY = Math.min( topY,bottomY );
}
if (filled && shape != LINE )
switch ( shape )
{
case OVAL:
g.fillOval(topX, topY, width, height );
break;
case RECT:
g.fillRect(topX, topY, width, height );
break;
}
else
switch (shape) {
case OVAL:
g.drawOval (topX, topY, width, height );
break;
case LINE:
g.drawLine(topX, topY, width, height );
break;
case RECT:
g.drawRect( topX, topY, width, height );
break;
}
if ( clear == true )
{ g.setColor( Color.white);
g.fillRect( 0,0, getSize().width, getSize().height );
clear = false;
}
}
private class ToolWindow extends JFrame {
public ToolWindow()
{
text = new JTextField( "Text", 20 );
text.addActionListener
(
new ActionListener()
{
public void actionPerformed( ActionEvent event )
{
textOn = true;
repaint();
}
}
);
fontList = new JComboBox( fontNames );
fontList.setMaximumRowCount( 3 );
fontList.addItemListener(
new ItemListener(){
public void itemStateChanged( ItemEvent event )
{
font = fontNames [ fontList.getSelectedIndex() ];
}
}
);
sizeList = new JComboBox( sizeNames );sizeList.setMaximumRowCount( 3 );
sizeList.addItemListener(new ItemListener()
{
public void itemStateChanged( ItemEvent event )
{
font = fontSize [ sizeList.getSelectedIndex() ];
}
}
); colorList = new JComboBox( colorNames );colorList.setMaximumRowCount( 3 );
colorList.addItemListener(new ItemListener()
{
public void itemStateChanged( ItemEvent event )
{
drawingColor = colors [ colorList.getSelectedIndex() ];
}
}
);
clearButton = new JButton( "Clear" );
clearButton.addActionListener( new ClearButtonHandler() );
fillBox = new JCheckBox( "filled" );
FillBoxHandler fillHandle = new FillBoxHandler();
fillBox.addItemListener( fillHandle );
ovalBox = new JRadioButton ( "Oval", true );
lineBox = new JRadioButton ( "Line", false );
rectBox = new JRadioButton ( "Rectangle", false );
RadioButtonHandler handler = new RadioButtonHandler();
ovalBox.addItemListener( handler );
lineBox.addItemListener( handler );
rectBox.addItemListener( handler );
shapeGroup.add( ovalBox );
shapeGroup.add( lineBox );
shapeGroup.add( rectBox );
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel1.setLayout( new GridLayout( 1, 3));
panel2.setLayout( new GridLayout( 1, 2));
panel3.setLayout( new GridLayout( 1, 3)); panel1.add( ovalBox );
panel1.add( lineBox );
panel2.add( fillBox );
panel2.add( clearButton );
panel3.add( new JScrollPane( colorList ));
panel3.add( new JScrollPane ( fontList ));
panel3.add( new JScrollPane ( sizeList ) );
Container container = getContentpane();
Container.setLayout( new FlowLayout() );
Container.add( panel1 );
Container.add( panel2 );
Container.add( panel3 );
Container.add( text );setSize( 350,200 );
setLocation ( 300, 0 );
setVisible ( true );
}
}
private class MouseHandler extends MouseAdapter
{
public void mousePressed( MouseEvent event )
{
topX = event.getX();
topY = event.getY();
}
public void mouseReleased ( MouseEvent event )
{
bottomX = event.getX();
bottomY = event.getY();
width = Math.ads( topX - bottomX );
height = Math.ads( topY - bottomY );
repaint();
}
} private class ClearButtonHandlera implements ActionListener
{
public void actionPerformed ( ActionEvent event )
{
clear = true;
repaint();
}
} private class RadioButtonHandler implements ItemListener
{
public void itemStateChanged( ItemEvent event )
{
if ( event.getSource() == ovalBox )
shape = OVAL;
else if ( event.getSource() == lineBox )
shape = LINE;
if ( event.getSource() == rectBox )
shape = RECT;
}
}
private class FillBoxHander implements ItemListener
{
public void itemStateChanged( ItemEvent event )
{
if ( event.getStateChange() == ItemEvent.SELECTED )
filled = true;
else
filled = false;
}
}
public static void main ( String arg[] )
{
Painter2 application = new Painter2 ();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); }
}
修改了3个小时还是不知道怎么修改好.求救一下
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;public class Painter2 extends JFrame {
private int topX, topY, width, fontSize, height, bottomX, bottomY, shape;
private boolean clear, textOn, filled;
private Color drawingColor;
private String font;
private JTextField text;
private JPanel panel1, panel2, panel3;
private JRadioButton ovalBox, rectBox, lineBox;
private ButtonGroup shapeGroup;
private JCheckBox fillBox;
private JComboBox colorList, fontList, sizeList;
private JButton clearButton;
private String colorNames[] = { "Black", "Green", "Blue", "Red", "Cyan" };
private Color colors[] = { Color.black, Color.green, Color.blue, Color.red,
Color.cyan }; private String fontNames[] = { "Serif", "SansSerif", "Monospaced" }; private String szieNames[] = { "9", "10", "22", "72" };
private int sizes[] = { 9, 10, 22, 72 };
private final int OVAL = 1, LINE = 2, RECT = 3;
private ToolWindow tools; public Painter2() {
addMouseListener(new MouseHandler());
drawingColor = Color.black;
shape = OVAL;
font = "Serif";
fontSize = 9;
setSize(300, 300);
setVisible(true);
tools = new ToolWindow();
} public void paint(Graphics g) {
g.setColor(drawingColor);
if (textOn) {
g.setFont(new Font(font, Font.PLAIN, fontSize));
g.drawString(text.getText(), topX, topY);
textOn = false;
return; }
if (shape != LINE) {
topX = Math.min(topX, bottomX);
topY = Math.min(topY, bottomY);
}
if (filled && shape != LINE)
switch (shape) {
case OVAL:
g.fillOval(topX, topY, width, height);
break;
case RECT:
g.fillRect(topX, topY, width, height);
break;
}
else
switch (shape) {
case OVAL:
g.drawOval(topX, topY, width, height);
break;
case LINE:
g.drawLine(topX, topY, width, height);
break;
case RECT:
g.drawRect(topX, topY, width, height);
break;
}
if (clear == true) {
g.setColor(Color.white);
g.fillRect(0, 0, getSize().width, getSize().height);
clear = false;
}
} private class ToolWindow extends JFrame {
public ToolWindow() {
text = new JTextField("Text", 20);
text.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
textOn = true;
repaint(); } } ); fontList = new JComboBox(fontNames);
fontList.setMaximumRowCount(3);
fontList.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
font = fontNames[fontList.getSelectedIndex()]; } } ); sizeList = new JComboBox(szieNames); sizeList.setMaximumRowCount(3);
sizeList.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
font = fontNames[sizeList.getSelectedIndex()]; } } ); colorList = new JComboBox(colorNames); colorList.setMaximumRowCount(3);
colorList.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
drawingColor = colors[colorList.getSelectedIndex()];
}
});
clearButton = new JButton("Clear");
clearButton.addActionListener(new ClearButtonHandler());
fillBox = new JCheckBox("filled");
FillBoxHandler fillHandle = new FillBoxHandler();
fillBox.addItemListener(fillHandle);
ovalBox = new JRadioButton("Oval", true);
lineBox = new JRadioButton("Line", false);
rectBox = new JRadioButton("Rectangle", false);
RadioButtonHandler handler = new RadioButtonHandler();
ovalBox.addItemListener(handler);
lineBox.addItemListener(handler);
rectBox.addItemListener(handler);
shapeGroup = new ButtonGroup();
shapeGroup.add(ovalBox);
shapeGroup.add(lineBox);
shapeGroup.add(rectBox);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel1.setLayout(new GridLayout(1, 3));
panel2.setLayout(new GridLayout(1, 2));
panel3.setLayout(new GridLayout(1, 3)); panel1.add(ovalBox);
panel1.add(lineBox);
panel2.add(fillBox);
panel2.add(clearButton);
panel3.add(new JScrollPane(colorList));
panel3.add(new JScrollPane(fontList));
panel3.add(new JScrollPane(sizeList));
Container container = getContentPane();
container.setLayout(new FlowLayout());
container.add(panel1);
container.add(panel2);
container.add(panel3);
container.add(text); setSize(350, 200);
setLocation(300, 0);
setVisible(true);
}
} private class MouseHandler extends MouseAdapter {
public void mousePressed(MouseEvent event) {
topX = event.getX();
topY = event.getY(); } public void mouseReleased(MouseEvent event) {
bottomX = event.getX();
bottomY = event.getY();
width = Math.abs(topX - bottomX);
height = Math.abs(topY - bottomY);
repaint();
} } private class ClearButtonHandlera implements ActionListener {
public void actionPerformed(ActionEvent event) {
clear = true;
repaint(); }
} private class RadioButtonHandler implements ItemListener {
public void itemStateChanged(ItemEvent event) {
if (event.getSource() == ovalBox)
shape = OVAL;
else if (event.getSource() == lineBox)
shape = LINE;
if (event.getSource() == rectBox)
shape = RECT; } } private class FillBoxHander implements ItemListener {
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED)
filled = true;
else
filled = false; } } public static void main(String arg[]) {
Painter2 application = new Painter2();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}
我是刚学JAVA的...不好意思
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;public class Painter2 extends JFrame {
private int topX, topY, width, fontSize, height, bottomX, bottomY, shape;
private boolean clear, textOn, filled;
private Color drawingColor;
private String font;
private JTextField text;
private JPanel panel1, panel2, panel3;
private JRadioButton ovalBox, rectBox, lineBox;
private ButtonGroup shapeGroup;
private JCheckBox fillBox;
private JComboBox colorList, fontList, sizeList;
private JButton clearButton;
private String colorNames[] = { "Black", "Green", "Blue", "Red", "Cyan" };
private Color colors[] = { Color.black, Color.green, Color.blue, Color.red,
Color.cyan }; private String fontNames[] = { "Serif", "SansSerif", "Monospaced" }; private String szieNames[] = { "9", "10", "22", "72" };
private int sizes[] = { 9, 10, 22, 72 };
private final int OVAL = 1, LINE = 2, RECT = 3;
private ToolWindow tools; public Painter2() {
addMouseListener(new MouseHandler());
//似乎每用
drawingColor = Color.black;
shape = OVAL;
font = "Serif";
fontSize = 9;
setSize(300, 300);
setVisible(true);
tools = new ToolWindow();
} public void paint(Graphics g) {
g.setColor(drawingColor);
if (textOn) {
g.setFont(new Font(font, Font.PLAIN, fontSize));
g.drawString(text.getText(), topX, topY);
textOn = false;
return; }
if (shape != LINE) {
topX = Math.min(topX, bottomX);
topY = Math.min(topY, bottomY);
}
if (filled && shape != LINE)
switch (shape) {
case OVAL:
g.fillOval(topX, topY, width, height);
break;
case RECT:
g.fillRect(topX, topY, width, height);
break;
}
else
switch (shape) {
case OVAL:
g.drawOval(topX, topY, width, height);
break;
case LINE:
g.drawLine(topX, topY, width, height);
break;
case RECT:
g.drawRect(topX, topY, width, height);
break;
}
if (clear == true) {
g.setColor(Color.white);
g.fillRect(0, 0, getSize().width, getSize().height);
clear = false;
}
} private class ToolWindow extends JFrame {
public ToolWindow() {
text = new JTextField("Text", 20);
text.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
textOn = true;
repaint(); } } ); fontList = new JComboBox(fontNames);
fontList.setMaximumRowCount(3);
fontList.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
font = fontNames[fontList.getSelectedIndex()]; } } ); sizeList = new JComboBox(szieNames); sizeList.setMaximumRowCount(3);
sizeList.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
font = fontNames[sizeList.getSelectedIndex()]; } } ); colorList = new JComboBox(colorNames); colorList.setMaximumRowCount(3);
colorList.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
drawingColor = colors[colorList.getSelectedIndex()];
}
});
clearButton = new JButton("Clear");
clearButton.addActionListener(new ClearButtonHandler());
fillBox = new JCheckBox("filled");
// FillBoxHandler fillHandle = new FillBoxHandler();
fillBox.addItemListener(new FillBoxHander());
ovalBox = new JRadioButton("Oval", true);
lineBox = new JRadioButton("Line", false);
rectBox = new JRadioButton("Rectangle", false);
RadioButtonHandler handler = new RadioButtonHandler();
ovalBox.addItemListener(handler);
lineBox.addItemListener(handler);
rectBox.addItemListener(handler);
shapeGroup = new ButtonGroup();
shapeGroup.add(ovalBox);
shapeGroup.add(lineBox);
shapeGroup.add(rectBox);
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
panel1.setLayout(new GridLayout(1, 3));
panel2.setLayout(new GridLayout(1, 2));
panel3.setLayout(new GridLayout(1, 3)); panel1.add(ovalBox);
panel1.add(lineBox);
panel2.add(fillBox);
panel2.add(clearButton);
panel3.add(new JScrollPane(colorList));
panel3.add(new JScrollPane(fontList));
panel3.add(new JScrollPane(sizeList));
Container container = getContentPane();
container.setLayout(new FlowLayout());
container.add(panel1);
container.add(panel2);
container.add(panel3);
container.add(text); setSize(350, 200);
setLocation(300, 0);
setVisible(true);
}
} private class MouseHandler extends MouseAdapter {
public void mousePressed(MouseEvent event) {
topX = event.getX();
topY = event.getY(); } public void mouseReleased(MouseEvent event) {
bottomX = event.getX();
bottomY = event.getY();
width = Math.abs(topX - bottomX);
height = Math.abs(topY - bottomY);
repaint();
} } private class ClearButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
clear = true;
repaint(); }
} private class RadioButtonHandler implements ItemListener {
public void itemStateChanged(ItemEvent event) {
if (event.getSource() == ovalBox)
shape = OVAL;
else if (event.getSource() == lineBox)
shape = LINE;
if (event.getSource() == rectBox)
shape = RECT; } } private class FillBoxHander implements ItemListener {
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED)
filled = true;
else
filled = false; } } public static void main(String arg[]) {
Painter2 application = new Painter2();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}