编写一个Java GUI

编写一个GUI,界面上提供的按钮有“画圆”、“画矩形”、“画椭圆”、“画直线”,另外提供两个文本框,用户可以输出坐标位置,当用户按下不同的按钮时,就在GUI上显示不同的图形。
写好了 验证有效 一定给分
我是自学,所以请大家帮帮忙哈

试一下下面的代码
(如果点击按钮后没有任何变化,将窗口最小化一下就有了)
没有出现这个问题的话,也请告诉我一下~
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class painting extends JFrame implements ActionListener{
private JButton round,rectangle,ellipse,beeline;
private JLabel xaxis,yaxis,remain,information;
private JTextField xTF,yTF;
private BorderLayout layout;
private Container cp;
private JPanel pCenter;
Vector<Object> v=new Vector<Object>(); //定义一个集合类用于存储按钮对象

public painting(){ //构造方法 ------------------框架初始化-------------------
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("painting");
setSize(400,500);
layout = new BorderLayout();
cp = getContentPane();
cp.setLayout(layout);

round= new JButton("画圆");
rectangle= new JButton("画矩形");
ellipse= new JButton("画椭圆");
beeline= new JButton("画直线");
xaxis=new JLabel("x坐标");
yaxis=new JLabel("y坐标");
remain=new JLabel("右下角坐标(400,500) ");
xTF=new JTextField("0",5);
yTF=new JTextField("0",5);

JPanel pUp= new JPanel();//第一个面板 在上部
pUp.add(remain);
pUp.add(xaxis);//置两个文本框
pUp.add(xTF);
pUp.add(yaxis);
pUp.add(yTF);
cp.add(pUp, "North");
//pCenter=new JPanel();//第二个面板 在中部
//pCenter.add(information);//置显示说明与画图区
//cp.add(pCenter,"Center");
JPanel pDown= new JPanel();//第三个面板 在下部
pDown.add(round);// 置四个按钮
pDown.add(rectangle);
pDown.add(ellipse);
pDown.add(beeline);
cp.add(pDown, "South");

round.addActionListener(this); //置按钮监听--------------按钮行为监听与响应-------------
rectangle.addActionListener(this);
ellipse.addActionListener(this);
beeline.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {//监听响应
v.add(e.getSource());//将按钮情况存入v中
}

public void paint(Graphics g) { //--------------绘图响应-------------
super.paint(g);
int xx=Integer.parseInt(xTF.getText());//获取位置值
int yy=Integer.parseInt(yTF.getText());
int size=0;
Object o;
//while(v.size()!=size){//当用户点击按钮选择某一种图形时,v的大小就会比size值大1,当绘图完成后,v.size又等于size;效果就是:出现点击 即刻处理
o=v.lastElement();
if(o == round) {g.drawOval(xx,yy,50,50);}
else if (o == rectangle){g.drawRect(xx,yy,100,50);}
else if (o == ellipse) {g.drawOval(xx,yy,100,50);}
else if(o == beeline) {g.drawLine(xx,yy,xx+100,yy);}
size++;
}
}

public static void main(String[] args){ // ------------程序入口-------------
JFrame frame = new painting();
frame.setVisible(true);
}

}
温馨提示:内容为网友见解,仅供参考
无其他回答

java编程中,GUI界面的一般框架有什么??希望大神给写个程序实例,程序内 ...
import java.awt.*;import java.awt.event.*;import javax.swing.*;\/\/本类实现了ActionListener接口. 一个ActionListener可以响应JMenuItem 和JButton的动作\/\/本类实现FocusListener接口,一个FocusListener可以响应JTextField,JButton等\/\/JButton响应多个事件接口public class MyGuiFrame extends JFrame impl...

java的gui程序设计
\/\/导入swing图形界面开发常用的3个包import java.awt.*;import java.awt.event.*;import javax.swing.*;public class AddFrame extends JFrame implements ActionListener {JTextField jtf1, jtf2, jtf3;public AddFrame() {JPanel jpcenter = new JPanel(new GridLayout(3, 2)); \/\/创建面板,...

GUI程序设计(java)
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class CalculatorFrame extends JFrame { private JTextField txtDis = new JTextField("0", 16); \/\/显示文本框 private JButton[] btnGrp = new JButton[17]; \/\/17个按钮 private JPanel jpnMain = new JPanel();...

Java实现GUI编程基本方法都有那些?
①创建容器 首先要创建一个GUI应用程序,需要创建一个用于容纳所有其它GUI组件元素的载体,Java中称为容器。典型的包括窗口(Window)、框架(Frame\/JFrame)、对话框(Dialog\/JDialog)、面板(Panel\/JPanel)等。只有先创建了这些容器,其它界面元素如按钮(Button\/JButton)、标签(Label\/JLabel)、文本框(TextFi...

java GUI代码设计 完成下面窗口界面设计及功能设计:选一个地名,下面显...
package com.rxlamo.gui;import org.eclipse.swt.SWT;import org.eclipse.swt.events.MouseAdapter;import org.eclipse.swt.events.MouseEvent;import org.eclipse.swt.layout.GridLayout;import org.eclipse.swt.widgets.*;import java.lang.invoke.SwitchPoint;public class AreaCode { private final ...

Java Swing写一个GUI界面,分成左右两栏?
import java.awt.Color;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JSplitPane;public class DemoFrame extends JFrame {JPanel jp1, jp2;public DemoFrame() {jp1 = new JPanel();jp1.setBackground(Color.RED);jp2 = new JPanel();jp2.setBackground(Color....

JAVA .编写GUI程序,要求:用户在密码框中输入数据,将输入的字符显示在另...
TextField password = new TextField(13);\/\/ 实例化一个文本框对象。JButton submit = new JButton("提交");\/\/ 实例化一个按钮对象。JButton reset = new JButton("重置");JLabel output = new JLabel("你输入的密码是:");JTextField show = new JTextField(10);Test() {\/\/ 构造函数 ...

编写一个java GUI程序(其实帮我改改)
把frame=new subJFrame("DrawShapes");改成frame=new JFrame("DrawShapes");程序基本没问题,在public void paint(Graphics g)中加上如下程序就可以了。public void paint(Graphics g){ switch(i){ case 1: g.drawOval(20,20,40,40);break;case 2: g.drawRect(20,20,40,40);break;case...

java GUI模拟平抛运动和自由落体运动
简单做了一个 import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Panel;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;...

求大神帮忙编个JAVA的GUI程序,将摄氏温度和华氏温度互相转换,十分感谢...
\/** * Launch the application. *\/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {A window = new A();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}\/** * Create the application. *\/...

相似回答