JAVA,如何使下拉菜单被点击后触发事件

来源:百度知道 编辑:UC知道 时间:2024/07/03 13:02:19
很不好意思的是, 以下这段程序也是通过求助得来的. 自己的JAVA水平真的很有限. 现在的问题是,下拉菜单中有select, sin, cos, tan四个选项. 如何通过选中sin,cos,tan的选项来触发改变曲线呢?
试过用IF, 但是不太灵光的说... 唉 高手帮忙啊~~

import java.awt.Canvas;
import java.awt.Choice;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.*;

public class Sine extends Frame implements ItemListener{
public static void main(String arg[]) {
Sine s = new Sine("Sine curve");
s.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

s.setLayout(new FlowLayout());
s.setSize(430, 280);
Choice choice=new Choice();
choice.addItem("select");
choice.addItem("sin");
choice.addItem("cos");
choice.addItem("tan");
choice.addI

编程时候不能把东西都写在main里面。。习惯不好,main里只要Sine s = new Sine("Sine curve"); 这句就够了,其他都放在constructor里。

如果在你这基础上改的话,重新绘图是不用main的,要用Cavans里面的repaint(),把MyCanvas cnv= new MyCanvas( )的cnv设为Sine的一个member
。在MyCavans里面新加一个member String s ;s代表“sin”“cos”“tan”,根据s的不同paint()里面添加 if else

在itemStateChanged,把event得出的string 然后 cnv.setS(String s);cnv.repaint();

你可以给大菜单一个BOOL bL变量,再给要选择的小菜单一个BOOL bs变量,
如果bl == TRUE && bs == TRUE,那就是点击了,如果bl == TRUE && bs == FALSE ,就是没有点击。
或者你试试这个:给想监视的菜单添加ON_UPDATE_COMMAND_UI命令,如果它被点击了,则会有一些操作在这里执行

我觉得程序写的挺好啊
public void itemStateChanged(ItemEvent e) {
if(e.getItem().equals("sin"))
{}
else if(e.getItem().equals("cos")){}
else if(e.getItem().equals("tan")){}
}
就能判断了阿?