怎么添加绘图语句 初学JAVA,制作了一个菜单,想让别人在点击菜单项的时候,窗口出现图形,比如点一下菜单项“圆”,就出现一个圆。菜单已经制作好了,但是绘图语句不知道怎么写,需要导入哪些包啊?谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 画圆:fillOval(x,y,w,h)方法画矩形:fillRect(x,y,w,h)方法 主要还是paint方法和graphics类的运用 import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.awt.Graphics;public class J_Menu extends JFrame { public J_Menu() { super ("常规菜单应用示例"); JMenuBar mBar=new JMenuBar(); setJMenuBar(mBar);//设置菜单栏 JMenu [] m={ new JMenu("圆(O)"),new JMenu("多边形(R)"),new JMenu("退出(Q)")}; char [][]mC={{'O','R','Q'},{'O','T'},{'R','W'},{'Q'}}; JMenuItem [][]mI= { {new JMenuItem("圆(O)"),new JMenuItem("椭圆(T)")}, {new JMenuItem("矩形(R)"),new JMenuItem("五角星(W)")}, {new JMenuItem("退出(Q)")} }; int i,j; for(i=0;i<m.length;i++) { mBar.add(m[i]);//添加下拉式菜单 m[i].setMnemonic(mC[0][i]); for (j=0;j<mI[i].length;j++) { m[i].add(mI[i][j]); mI[i][j].setMnemonic(mC[i+1][j]);//添加命令式菜单项 mI[i][j].setAccelerator( KeyStroke.getKeyStroke("ctrl"+mC[i+1][j])); mI[i][j].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JMenuItem mItem=(JMenuItem)e.getSource(); System.out.println("运行菜单项:"+mItem.getText()); if (mItem.getText()==("圆(O)")){ drawOval(0,10,40,40); }//就是这里不知道怎么写了。 if (mItem.getText()==("退出(Q)")){System.exit(0);} } } ); } } m[0].insertSeparator(1); } public static void main(String args[]) { JFrame app=new J_Menu(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setSize(250,200); app.setVisible(true); } }谢谢 package untitled7;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.awt.*;public class J_Menu extends JFrame { int state = -1; public J_Menu() { super("常规菜单应用示例"); JMenuBar mBar = new JMenuBar(); setJMenuBar(mBar); //设置菜单栏 JMenu[] m = { new JMenu("圆(O)"), new JMenu("多边形(R)"), new JMenu("退出(Q)")}; char[][] mC = { { 'O', 'R', 'Q'} , { 'O', 'T'} , { 'R', 'W'} , { 'Q'} }; JMenuItem[][] mI = { { new JMenuItem("圆(O)"), new JMenuItem("椭圆(T)")} , { new JMenuItem("矩形(R)"), new JMenuItem("五角星(W)")} , { new JMenuItem("退出(Q)")} }; int i, j; for (i = 0; i < m.length; i++) { mBar.add(m[i]); //添加下拉式菜单 m[i].setMnemonic(mC[0][i]); for (j = 0; j < mI[i].length; j++) { m[i].add(mI[i][j]); mI[i][j].setMnemonic(mC[i + 1][j]); //添加命令式菜单项 mI[i][j].setAccelerator( KeyStroke.getKeyStroke("ctrl" + mC[i + 1][j])); mI[i][j].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JMenuItem mItem = (JMenuItem) e.getSource(); System.out.println("运行菜单项:" + mItem.getText()); if (mItem.getText() == ("圆(O)")) { state = 0; } else { state =1; } if (mItem.getText() == ("退出(Q)")) { System.exit(0); } } } ); } } m[0].insertSeparator(1); } public void paint(Graphics g) { super.paint(g); if (state == 0) { g.setColor(Color.black); g.fillRect(50, 50, 100, 100); }else if(state==1) { g.fillArc(50,50,100,100,0,360); } } public static void main(String args[]) { JFrame app = new J_Menu(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setSize(250, 200); app.setVisible(true); }} 我的思路是用一个状态来判断目前你选的是什么图形,然后在paint方法中根据状态state来绘图,很简单的思路,你看看应该就明白了原来结贴了还能回复的啊。刚刚去你空间留言了,麻烦删了,不好意思 监测进程流量的变化 学java快还是学。net快? 求解程序出错原因 List和String[]之间如何强砖? 为什么这样不能实现循环读取对象数据?请指教!!!!!!!!!!!!!!!!!!!!!!! 本人是菜鸟.求高手!怎么做个公司的雇员工资支付程序~~~ 类定义的问题!! java支持压缩与解压缩, 怎么用啊?帮帮我, 加急 在线:java.library.path指的是什麽? 非常不错的地方,资源丰富 【求助】空指针异常问题 Java窗口中图片盖住控件
fillOval(x,y,w,h)方法
画矩形:
fillRect(x,y,w,h)方法
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.Graphics;
public class J_Menu extends JFrame { public J_Menu() {
super ("常规菜单应用示例");
JMenuBar mBar=new JMenuBar();
setJMenuBar(mBar);//设置菜单栏
JMenu [] m={ new JMenu("圆(O)"),new JMenu("多边形(R)"),new JMenu("退出(Q)")};
char [][]mC={{'O','R','Q'},{'O','T'},{'R','W'},{'Q'}};
JMenuItem [][]mI=
{
{new JMenuItem("圆(O)"),new JMenuItem("椭圆(T)")},
{new JMenuItem("矩形(R)"),new JMenuItem("五角星(W)")},
{new JMenuItem("退出(Q)")}
};
int i,j;
for(i=0;i<m.length;i++)
{
mBar.add(m[i]);//添加下拉式菜单
m[i].setMnemonic(mC[0][i]);
for (j=0;j<mI[i].length;j++)
{
m[i].add(mI[i][j]);
mI[i][j].setMnemonic(mC[i+1][j]);//添加命令式菜单项
mI[i][j].setAccelerator(
KeyStroke.getKeyStroke("ctrl"+mC[i+1][j]));
mI[i][j].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JMenuItem mItem=(JMenuItem)e.getSource();
System.out.println("运行菜单项:"+mItem.getText());
if (mItem.getText()==("圆(O)")){
drawOval(0,10,40,40); }//就是这里不知道怎么写了。
if (mItem.getText()==("退出(Q)")){System.exit(0);}
}
}
);
}
}
m[0].insertSeparator(1);
}
public static void main(String args[])
{
JFrame app=new J_Menu();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(250,200);
app.setVisible(true);
}
}
谢谢
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;public class J_Menu
extends JFrame {
int state = -1;
public J_Menu() {
super("常规菜单应用示例");
JMenuBar mBar = new JMenuBar();
setJMenuBar(mBar); //设置菜单栏 JMenu[] m = {
new JMenu("圆(O)"), new JMenu("多边形(R)"), new JMenu("退出(Q)")};
char[][] mC = {
{
'O', 'R', 'Q'}
, {
'O', 'T'}
, {
'R', 'W'}
, {
'Q'}
};
JMenuItem[][] mI = {
{
new JMenuItem("圆(O)"), new JMenuItem("椭圆(T)")}
, {
new JMenuItem("矩形(R)"), new JMenuItem("五角星(W)")}
, {
new JMenuItem("退出(Q)")}
};
int i, j;
for (i = 0; i < m.length; i++) {
mBar.add(m[i]); //添加下拉式菜单
m[i].setMnemonic(mC[0][i]);
for (j = 0; j < mI[i].length; j++) {
m[i].add(mI[i][j]);
mI[i][j].setMnemonic(mC[i + 1][j]); //添加命令式菜单项
mI[i][j].setAccelerator(
KeyStroke.getKeyStroke("ctrl" + mC[i + 1][j]));
mI[i][j].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JMenuItem mItem = (JMenuItem) e.getSource();
System.out.println("运行菜单项:" + mItem.getText());
if (mItem.getText() == ("圆(O)")) {
state = 0;
} else
{
state =1;
}
if (mItem.getText() == ("退出(Q)")) {
System.exit(0);
}
}
}
);
}
}
m[0].insertSeparator(1);
} public void paint(Graphics g) {
super.paint(g);
if (state == 0) {
g.setColor(Color.black);
g.fillRect(50, 50, 100, 100);
}else if(state==1)
{
g.fillArc(50,50,100,100,0,360);
}
} public static void main(String args[]) {
JFrame app = new J_Menu();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(250, 200);
app.setVisible(true);
}
}
刚刚去你空间留言了,麻烦删了,不好意思