解决方案 »

  1.   

    CSDN的大神们,经过了今天晚上的学习与代码实施,我初步将我的需求类进行了如下的修改:
        package c_port_packageBJTeacher;import java.awt.Dialog;
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.OutputStream;
    import java.net.InetAddress;import javax.swing.DefaultComboBoxModel;
    import javax.swing.JComboBox;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.ScrollPaneConstants;
    //创建ChatClient类作为聊天窗口;
    public class Complete_ChatForeUITeacherClient0 extends AFrame implements WindowListener,KeyListener,ItemListener, ActionListener
    {
    CaptureScreen cjco = null;
    int lennum = 0;
    int MyVisiblestate = 1;
    String SendInfo = "";
    public String MyFriendIP = "";
    String MyURLLocal = "";
    private static final long serialVersionUID = 1L;
    static Integer ChatPartnerSerialMark = 200;
    Integer ChatFriNum = 200;
    JScrollPane jspanel0 = null;
    JScrollPane jspanel1 = null;
    static DataOutputStream dops3 = null;
    JPanel jp = new JPanel(); 
    static DataInputStream dips3 = null;
    boolean started = false;
    InetAddress addr = null;
    String title = "获取好友资料";
    String chatword = null;
    Dialog ordernum = new Dialog(this,title,started);
        String str;
        int T =0;
        public static String UIDLocal = null;
        static String roleLocal = null;
        static String iPAddressLocal = null;
        String Local_Teacher_facia = null;
        Integer MyIndex = -1;
        public String MyChatObjrolE = null;
        JPanel jp1 = new JPanel();
        public JTextArea Jta2 = new JTextArea();
    String TeacherFuct = null;
    public JTextArea Jta1 = new JTextArea();
    String[] s = {"待选择","测试功能1","测试功能2","测试功能3","测试功能4","测试功能5","测试功能6","测试功能7","测试功能8","测试功能9","测试功能10","测试功能11","测试功能12","测试功能13"};
    JComboBox<String> combo1 = null;
    MyJButtonPayformyfuct jb1 = null;
    OutputStream outputstream = null; //CaptureScreen capScreen = new CaptureScreen(); 

    public Complete_ChatForeUITeacherClient0(String URL,Integer MyNum,String User_facia,Integer ChatObjectNum,String ChatObjrolE,String MyFriIP){
    this.setTitle(User_facia);
    System.out.println("C端Complete_ChatForeUITeacherClient");
    this.setBounds(new Rectangle(419,92,590,550));
    MyURLLocal = URL;
    System.out.println("C端最关心数据,URL值能够走到C端的聊天界面的构造方法:"+MyURLLocal);
    MyIndex = MyNum;
    roleLocal = "Teacher";
    ChatPartnerSerialMark = ChatObjectNum;
    System.out.println("CJ!!加油!!最牛逼伟望特必!!"+ChatObjectNum);
    MyChatObjrolE = ChatObjrolE;
    MyFriendIP = MyFriIP;
    iPAddressLocal = GetMyLocalIP.catchLocalIP();
    combo1 = new JComboBox<String>(s);
    combo1.addItem("");

    //TODO:
    Jta2.addKeyListener(this);
    combo1.addItemListener(this);
     Jta1.setLineWrap(true); //如果加上这一句,那么水平方向的滚动条永远不会出现。
      Jta1.setEditable(false); 
    combo1.setBounds(new Rectangle(28,240,200,20));
        jspanel0=new JScrollPane(Jta1);
        jspanel1 = new JScrollPane(Jta2);
        jspanel0.setBounds (new Rectangle (10,10,500,220));
        jspanel1.setBounds (new Rectangle (10,280,500,220));
        jspanel0.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
        jspanel0.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        jspanel1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    jspanel1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    jp1.setLayout(null);
    Jta1.setLineWrap(true);//激活自动换行功能
    Jta2.setLineWrap(true);
    Jta2.setWrapStyleWord(true);//激活断行不断字功能
        Jta1.setWrapStyleWord(true);//激活断行不断字功能
    jb1.setBounds(new Rectangle(321,240,150,20));
    jb1.addActionListener(this);
    jp1.setBounds(new Rectangle(10,10,590,550));
    jp1.add(jb1);
    jp1.add(combo1);
    jp1.add(jspanel0);
      jp1.add(jspanel1);
      setVisible(true);
      this.addWindowListener(this);
    }

    public void start() {
    this.add(jspanel0);
    this.add(jspanel1);
    this.add(jp1);
    jp1.setVisible(true);
    this.setVisible(true);
    } @Override
    public void windowActivated(WindowEvent e) {
    // TODO Auto-generated method stub


    } @Override
    public void windowClosed(WindowEvent e) {
    // TODO Auto-generated method stub SocketClient so2 = new SocketClient(Recv.D_PORT_SERVER,9911);
    synchronized(so2){
        so2.writeStr("18丗18丗"+"Teacher"+"丗"+RelayNo1.LocalMyWorkNum+"丗"+"Teacher"+"丠"+RelayNo1.LocalMyWorkNum+"丠"+ChatPartnerSerialMark+"丠"+"Teacher"+"丠"+"BeiJing"+"丗"+"C"+"丗"+"BeiJing","Complete_ChatForeUITeacherClient");
        so2.getMyResourceBack();
    }
    } @Override
    public void windowClosing(WindowEvent e) {
    // TODO Auto-generated method stub
    SocketClient so3 = new SocketClient(Recv.S_PORT_SERVER,8811);
    String content = "8丗IcloseOneFrame丗C丗Teacher丗"+NoteUserLoginFrame.MyworkNum;
    so3.writeStr(content, "Complete_ChatForeUITeacherClient");
    so3.getMyResourceBack();
    this.setVisible(false);
    } @Override
    public void windowDeactivated(WindowEvent e) {
    // TODO Auto-generated method stub
    } @Override
    public void windowDeiconified(WindowEvent e) {
    // TODO Auto-generated method stub

    }

    public static void main(String[] args){
    new Complete_ChatForeUITeacherClient("www.baidu.com",0,"CJCO!!加油!!",2,"Teacher","222.196.1.8").start(); }
    @Override
    public void windowOpened(WindowEvent e)
    {
    // TODO Auto-generated method stub

    }
    @Override
    public void windowIconified(WindowEvent e) {
    // TODO Auto-generated method stub

    }

    public void changeTitle(String ficia){
    this.setTitle(ficia);
    } @Override
    public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub
         if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER){
    String Chatword = RelayMyJButtonLogin.MyUID+" "+GetTheSysData.getTheLocalData()+" "+GetMySysTime.getNowTime()+"\r\n     "+Jta2.getText().trim();
    SendInfo = Chatword.replaceAll("\r\n", "丱");
    Jta1.append(Chatword+"\r\n");
    Jta1.setCaretPosition(Jta1.getText().length());
    Jta2.setCaretPosition(Jta2.getText().length());
    Jta2.setText("");
    sendInfo(SendInfo);
         } }

    public void sendInfo(String Info){
    Integer MySysserNum = Recv.MySystemserialnum;
        String str = "1丗"+MySysserNum+"丠"+"Teacher"+"丠"+ChatPartnerSerialMark+"丠"+MyChatObjrolE+"丠"+iPAddressLocal+"丠"+Info+"丗"+"C"+"丗"+"Teacher"+"丗"+MySysserNum; SocketClient so3 = new SocketClient(Recv.S_PORT_SERVER,8811);
    synchronized(so3){
    so3.writeStr(str,"Complete_ChatForeUITeacherClient");
    }
    String str0 = "1丗1丗"+"Teacher"+"丗"+MySysserNum+"丠"+"Teacher"+"丠"+ChatPartnerSerialMark+"丠"+MyChatObjrolE+"丠"+iPAddressLocal+"丠"+Info+"丠"+Recv.MyServerPlace+"丗"+"C"+"丗"+Recv.MyServerPlace;
    SocketClient so2 = new SocketClient(Recv.D_PORT_SERVER,9911);
    so2.writeStr(str0, "Complete_ChatForeUITeacherClient");
    so2.getMyResourceBack();
    System.out.println("C端通信报文"+str0);
    } @Override
    public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub

    } @Override
    public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub

    } @Override
    public void itemStateChanged(ItemEvent e) {
    // TODO Auto-generated method stub
    TeacherFuct = (String)combo1.getSelectedItem();
     if(e.getStateChange() == ItemEvent.SELECTED)
                 {
    if(TeacherFuct.equals("测试功能1")){

    new Code_Customer_OrderNum(MyChatObjrolE);
    combo1.setSelectedIndex(0);
    }else if(TeacherFuct.equals("测试功能2")){

    String url = Recv.MyJButton0URL[ChatPartnerSerialMark];
    System.out.println("C端最关心数据"+url);
    BareBonesBrowserLaunch.openURL(url);
    //
    }else if(TeacherFuct.equals("测试功能3")){
    combo1.setSelectedIndex(0);
    if(cjco==null){
    cjco = new CaptureScreen();
    }else if(cjco.isVisible()){

    }else{
    cjco.setVisible(true);
    }
    //
    }else if(TeacherFuct.equals("测试功能4")){
    new ManageC_port_SendFriendFileFuct(Recv.MyFriIP);
    //
    }else if(TeacherFuct.equals("测试功能5")){
    new ManageTheC_port_Recv_FriendFile(GetMyLocalIP.catchLocalIP());
    //
    }else if(TeacherFuct.equals("测试功能6")){
    new CustomerCompliainUI();
    //
    }else if(TeacherFuct.equals("测试功能7")){
    //TODO:添加本按钮的“测试功能7的类的执行方法”.
    //
    }else if(TeacherFuct.equals("测试功能8")){
    //TODO:添加本按钮的“测试功能8的类的执行方法”.
    //
    }else if(TeacherFuct.equals("测试功能9")){
    BareBonesBrowserLaunch.openURL(MyURLLocal);
    //
    }else if(TeacherFuct.equals("测试功能10")){
    new ChatClientFriendlist(ManageC_port_MDSpara0Channel_Thread.Locallog);
    //
    }else if(TeacherFuct.equals("测试功能11")){
    new SchemeMemory(ChatPartnerSerialMark,MyChatObjrolE);
    //
    }else if(TeacherFuct.equals("测试功能12")){
    new PayForMyHyperRights(MyChatObjrolE);
    initComboBox();
    }else{
    new SaveMyChatlogtoFile(MyChatObjrolE,ChatPartnerSerialMark,Recv.MyServerPlace);
    }

    }if(e.getStateChange() == ItemEvent.DESELECTED)
        {
    combo1 = new JComboBox<String>(new DefaultComboBoxModel<String>());
    combo1.addItem("value");
        }
    }

    public void initComboBox(){
    String[] s = {"待选择","测试功能1","测试功能2","测试功能3","测试功能4","测试功能5","测试功能6","测试功能7","测试功能8","测试功能9","测试功能10","测试功能11","测试功能12","测试功能13"};
    JComboBox<String> combo1 = new JComboBox<String>(s);
    combo1.addItemListener(this);
    } @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub  

    }}
        但是,还是有一个问题没有解决:
        让我的用户在选择“测试功能n”的时候,能够弹出对应的“具体功能响应类”,在用户关闭具体功能后,能够进行:
        “用户再次打开上文同一个功能的时候”,我的JComboBox能够进行:
        “在我的JComboBox的实例还是原先的SelectedItem的值”的场景下,能够进行我的对应于“某一个测试功能n”的具体类型的调用.
        我的问题就是:
        在对我的JComboBox的实例进行监视的时候,怎样进行代码的书写,能够得到:
        在用户选中了一个选项之后,可以再次选择一个相同的选项,并且,调用这个选项所提供的功能?
        也就是:
        怎样能够改变JComboBox对象的SelectedItem的值.
        谢谢高手!!
      

  2.   

    现在还有做Swing开发的呀?
    不过拿来学习还是可以的!
      

  3.   

    不是有JComboBox不是有setSelectedItem(Object anObject)方法吗,然后updateUI()刷新。