小弟正在做一项JAVA作业,是用GUI设计一个点菜系统.已经构思好了,程序也写了一半了.但是现在遇到了瓶颈,过不去了.其实具体方法也知道怎么用,但因为是初学者,没有这方面设计经验.代码看对于高手看起来可能有点简单,但是我想了3 4 个小时想不通.所以上来赐教.请各位高手帮帮小弟.请留下QQ,我会联系你的.我的 86668123

解决方案 »

  1.   

    那好,我贴出问题.
    首先,这一个用JAVA写的GUI.我贴出代码,大家运行一下,看看是不是出错(当你点第二份的时候).import javax.swing.*; 
    import javax.swing.border.*; 
    import java.awt.*; 
    import java.awt.event.*; 
         
         
         
    public class Pizza extends JFrame implements ItemListener, ActionListener{    private final int PTTITLES = 7,LTITLES = 7,MTITLES = 7,STITLES = 7;
       private JPanel mainPanel = new JPanel(),
                centerPanel = new JPanel(),
                buttonPanel = new JPanel(),
                pizzaTypePanel = new JPanel(),                         
                largePanel = new JPanel(),                          
                mediumPanel = new JPanel(),                           
                smallPanel = new JPanel(),
                ddPanel = new JPanel(); 
       private JButton clear = new JButton("clear"); 
       private JButton submit = new JButton("submit");
       private JTextArea display = new JTextArea(10,20);
       String s;
       JCheckBox titlesp[] = new JCheckBox[PTTITLES];   
       JCheckBox titlesl[] = new JCheckBox[LTITLES];
       JCheckBox titlesm[] = new JCheckBox[MTITLES];
       JCheckBox titless[] = new JCheckBox[STITLES];
       JTabbedPane jTabbedPane = new JTabbedPane();   
            
                
        public Pizza() { 
          pizzaTypePanel.setLayout(new GridLayout(7, 1));
          largePanel.setLayout(new GridLayout(7, 1));
          mediumPanel.setLayout(new GridLayout(7, 1));
          smallPanel.setLayout(new GridLayout(7, 1));
          pizzaTypePanel.setBorder(BorderFactory.createTitledBorder("Pizza Type"));
          largePanel.setBorder(BorderFactory.createTitledBorder("Large"));
          mediumPanel.setBorder(BorderFactory.createTitledBorder("Medium"));
          smallPanel.setBorder(BorderFactory.createTitledBorder("Small"));
          centerPanel.add(pizzaTypePanel); 
          centerPanel.add(largePanel);
          centerPanel.add(mediumPanel); 
          centerPanel.add(smallPanel);
          centerPanel.setLayout(new FlowLayout());
          pack();
          getContentPane().add(mainPanel);
          pizzaType();
          largemoney();
          mediummoney();
          smallmoney();
          buttonPanel.add(clear); 
          buttonPanel.add(submit); 
          mainPanel.add(jTabbedPane);
          mainPanel.add(display);
          clear.addActionListener(this);                                       
          submit.addActionListener(this);
          mainPanel.add(buttonPanel);
          mainPanel.setLayout(new GridLayout(3, 1)); 
          jTabbedPane.addTab("Pizza Type", null, centerPanel, null);
      jTabbedPane.addTab("声明", null, ddPanel, null);
      
    }         
                
        public void pizzaType() { 
          
       String titleLabelsPT[] = 
         {"Super Special", "Marinara", 
            "Vegetarian","Hawaiian","Meat Lovers","Chicken","Extra Topping"}; 
                                                                      
            for(int k = 0; k < titleLabelsPT.length; k++) {                   
          titlesp[k] = new JCheckBox(titleLabelsPT[k]); 
          titlesp[k].addItemListener(this); 
          pizzaTypePanel.add(titlesp[k]);                     
    }}    public void largemoney() { 
          
       String titleLabelsLM[] = 
         {"8.00", "8.00", 
            "8.00","8.00","8.00","8.00","8.00"}; 
                                                                      
            for(int k = 0; k < titleLabelsLM.length; k++) {                   
          titlesl[k] = new JCheckBox(titleLabelsLM[k]); 
          titlesl[k].addItemListener(this); 
          largePanel.add(titlesl[k]);                     
    }} public void mediummoney() { 
          
       String titleLabelsMM[] = 
         {"6.50", "6.50", 
            "6.50","6.50","6.50","6.50","6.50"}; 
                                                                      
            for(int k = 0; k < titleLabelsMM.length; k++) {                   
          titlesm[k] = new JCheckBox(titleLabelsMM[k]); 
          titlesm[k].addItemListener(this); 
          mediumPanel.add(titlesm[k]);                     
    }} public void smallmoney() { 
          
       String titleLabelsSM[] = 
         {"5.00", "5.00", 
            "5.00","5.00","5.00","5.00","5.00"}; 
                                                                      
            for(int k = 0; k < titleLabelsSM.length; k++) {                   
          titless[k] = new JCheckBox(titleLabelsSM[k]); 
          titless[k].addItemListener(this); 
          smallPanel.add(titless[k]);                     
    }}
    public void itemStateChanged(ItemEvent e) { 
             display.setText("Your order so far  ");
             for (int k = 0; k < titlesp.length; k++ )                 
               if (titlesp[k].isSelected())  
                                   
                 display.append( titlesp[k].getText() + "\n"); 
                 
             for (int k = 0; k < titlesl.length; k++ ) 
               if (titlesl[k].isSelected()) 
                 display.append(" Large (" + titlesl[k].getText() + ")"); 
             for (int k = 0; k < titlesm.length; k++ ) 
               if (titlesm[k].isSelected()) 
                 display.append(" Medium (" + titlesm[k].getText() + ")");
             for (int k = 0; k < titless.length; k++ ) 
               if (titless[k].isSelected()) 
                 display.append(" Small (" + titless[k].getText() + ")");
             
          }
          
    public void actionPerformed(ActionEvent e){ 
       String label = submit.getText(); 
       if (e.getSource() == submit) { 
          if (label.equals("Submit Order")) { 
             display.append("Thank you. Press 'Confirm' to submit for your order!\n"); 
             submit.setText("Confirm Order"); 
          } else { 
             display.append("Thank you. You will receive your order tomorrow!\n"); 
             submit.setText("Submit Order"); 
          } 
       } else 
          display.setText("Thank you. Maybe we can serve you next time!\n"); 

          
    public static void main(String[] args)      { 
         Pizza f = new Pizza(); 
           f.setSize(600, 750); 
           
           f.setVisible(true); 
                                                                                 
      } }
      

  2.   

    我想用一个方法,就是说第一个点完.在点第二个的时候,append的所有的文本下面加,这个点完一个是一个,不会出现乱了的那种情况了.但是不知道怎么加...
      

  3.   

    好象今天我不大好运行,我在别人的机子上呢....我只能用眼睛看了
    顺便告诉你帖代码可以用JAVA格式的
    import javax.swing.*;  
    import javax.swing.border.*;  
    import java.awt.*;  
    import java.awt.event.*;  
          
          
          
    public class Pizza extends JFrame implements ItemListener, ActionListener{     private final int PTTITLES = 7,LTITLES = 7,MTITLES = 7,STITLES = 7; 
       private JPanel mainPanel = new JPanel(), 
                centerPanel = new JPanel(), 
                buttonPanel = new JPanel(), 
                pizzaTypePanel = new JPanel(),                          
                largePanel = new JPanel(),                           
                mediumPanel = new JPanel(),                            
                smallPanel = new JPanel(), 
                ddPanel = new JPanel();  
       private JButton clear = new JButton("clear");  
       private JButton submit = new JButton("submit"); 
       private JTextArea display = new JTextArea(10,20); 
       String s; 
       JCheckBox titlesp[] = new JCheckBox[PTTITLES];    
       JCheckBox titlesl[] = new JCheckBox[LTITLES]; 
       JCheckBox titlesm[] = new JCheckBox[MTITLES]; 
       JCheckBox titless[] = new JCheckBox[STITLES]; 
       JTabbedPane jTabbedPane = new JTabbedPane();    
             
                 
        public Pizza() {  
          pizzaTypePanel.setLayout(new GridLayout(7, 1)); 
          largePanel.setLayout(new GridLayout(7, 1)); 
          mediumPanel.setLayout(new GridLayout(7, 1)); 
          smallPanel.setLayout(new GridLayout(7, 1)); 
          pizzaTypePanel.setBorder(BorderFactory.createTitledBorder("Pizza Type")); 
          largePanel.setBorder(BorderFactory.createTitledBorder("Large")); 
          mediumPanel.setBorder(BorderFactory.createTitledBorder("Medium")); 
          smallPanel.setBorder(BorderFactory.createTitledBorder("Small")); 
          centerPanel.add(pizzaTypePanel);  
          centerPanel.add(largePanel); 
          centerPanel.add(mediumPanel);  
          centerPanel.add(smallPanel); 
          centerPanel.setLayout(new FlowLayout()); 
          pack(); 
          getContentPane().add(mainPanel); 
          pizzaType(); 
          largemoney(); 
          mediummoney(); 
          smallmoney(); 
          buttonPanel.add(clear);  
          buttonPanel.add(submit);  
          mainPanel.add(jTabbedPane); 
          mainPanel.add(display); 
          clear.addActionListener(this);                                        
          submit.addActionListener(this); 
          mainPanel.add(buttonPanel); 
          mainPanel.setLayout(new GridLayout(3, 1));  
          jTabbedPane.addTab("Pizza Type", null, centerPanel, null); 
      jTabbedPane.addTab("声明", null, ddPanel, null); 
       
    }          
                 
        public void pizzaType() {  
           
       String titleLabelsPT[] =  
         {"Super Special", "Marinara",  
            "Vegetarian","Hawaiian","Meat Lovers","Chicken","Extra Topping"};  
                                                                       
            for(int k = 0; k  < titleLabelsPT.length; k++) {                    
          titlesp[k] = new JCheckBox(titleLabelsPT[k]);  
          titlesp[k].addItemListener(this);  
          pizzaTypePanel.add(titlesp[k]);                      
    }}     public void largemoney() {  
           
       String titleLabelsLM[] =  
         {"8.00", "8.00",  
            "8.00","8.00","8.00","8.00","8.00"};  
                                                                       
            for(int k = 0; k  < titleLabelsLM.length; k++) {                    
          titlesl[k] = new JCheckBox(titleLabelsLM[k]);  
          titlesl[k].addItemListener(this);  
          largePanel.add(titlesl[k]);                      
    }}  public void mediummoney() {  
           
       String titleLabelsMM[] =  
         {"6.50", "6.50",  
            "6.50","6.50","6.50","6.50","6.50"};  
                                                                       
            for(int k = 0; k  < titleLabelsMM.length; k++) {                    
          titlesm[k] = new JCheckBox(titleLabelsMM[k]);  
          titlesm[k].addItemListener(this);  
          mediumPanel.add(titlesm[k]);                      
    }}  public void smallmoney() {  
           
       String titleLabelsSM[] =  
         {"5.00", "5.00",  
            "5.00","5.00","5.00","5.00","5.00"};  
                                                                       
            for(int k = 0; k  < titleLabelsSM.length; k++) {                    
          titless[k] = new JCheckBox(titleLabelsSM[k]);  
          titless[k].addItemListener(this);  
          smallPanel.add(titless[k]);                      
    }} 
    public void itemStateChanged(ItemEvent e) {  
             display.setText("Your order so far  "); 
             for (int k = 0; k  < titlesp.length; k++ )                  
               if (titlesp[k].isSelected())   
                                    
                 display.append( titlesp[k].getText() + "\n");  
                  
             for (int k = 0; k  < titlesl.length; k++ )  
               if (titlesl[k].isSelected())  
                 display.append(" Large (" + titlesl[k].getText() + ")");  
             for (int k = 0; k  < titlesm.length; k++ )  
               if (titlesm[k].isSelected())  
                 display.append(" Medium (" + titlesm[k].getText() + ")"); 
             for (int k = 0; k  < titless.length; k++ )  
               if (titless[k].isSelected())  
                 display.append(" Small (" + titless[k].getText() + ")"); 
              
          } 
           
    public void actionPerformed(ActionEvent e){  
       String label = submit.getText();  
       if (e.getSource() == submit) {  
          if (label.equals("Submit Order")) {  
             display.append("Thank you. Press 'Confirm' to submit for your order!\n");  
             submit.setText("Confirm Order");  
          } else {  
             display.append("Thank you. You will receive your order tomorrow!\n");  
             submit.setText("Submit Order");  
          }  
       } else  
          display.setText("Thank you. Maybe we can serve you next time!\n");  
    }  
           
    public static void main(String[] args)      {  
         Pizza f = new Pizza();  
           f.setSize(600, 750);  
            
           f.setVisible(true);  
                                                                                  
      }  }
    自己帖出来自己看看先
      

  4.   

    答:
    将方法public void itemStateChanged(ItemEvent e)的代码改成如下代码,就行了.public void itemStateChanged(ItemEvent e) {  
             display.setText("Your order so far  "); 
             for (int k = 0; k  < titlesp.length; k++ )                  
               if (titlesp[k].isSelected())   
                                    
                 display.append( titlesp[k].getText() + "\n");  
                  
             for (int k = 0; k  < titlesl.length; k++ )  
               if (titlesl[k].isSelected())  
                 display.append(" Large (" + titlesl[k].getText() + ")");  
             for (int k = 0; k  < titlesm.length; k++ )  
               if (titlesm[k].isSelected())  
                 display.append(" Medium (" + titlesm[k].getText() + ")"); 
             for (int k = 0; k  < titless.length; k++ )  
               if (titless[k].isSelected())  
                 display.append(" Small (" + titless[k].getText() + ")"); 
              
          } 
      

  5.   

    答:对不起,上贴贴错了. 
    将方法public void itemStateChanged(ItemEvent e)的代码改成如下代码,就行了. public void itemStateChanged(ItemEvent e) {  
             display.setText("Your order so far \n "); 
             for (int k = 0; k  < titlesp.length; k++ )  
             {
               if (titlesp[k].isSelected())   
                                    
                 display.append( titlesp[k].getText() );  
                  
       
               if (titlesl[k].isSelected())  
                 display.append(" Large (" + titlesl[k].getText() + ")");  
         
               if (titlesm[k].isSelected())  
                 display.append(" Medium (" + titlesm[k].getText() + ")"); 
         
               if (titless[k].isSelected())  
                 display.append(" Small (" + titless[k].getText() + ")"); 
              display.append("\n");
          } 
    }
      

  6.   

    同上,for (int k = 0; k  < titlesp.length; k++ )                  
               if (titlesp[k].isSelected())   
                                    
                 display.append( titlesp[k].getText() + "\n");  
                  
             for (int k = 0; k  < titlesl.length; k++ )  
               if (titlesl[k].isSelected())  
                 display.append(" Large (" + titlesl[k].getText() + ")");  
             for (int k = 0; k  < titlesm.length; k++ )  
               if (titlesm[k].isSelected())  
                 display.append(" Medium (" + titlesm[k].getText() + ")"); 
             for (int k = 0; k  < titless.length; k++ )  
               if (titless[k].isSelected())  
                 display.append(" Small (" + titless[k].getText() + ")"); 
    你用了四个for语句
      

  7.   

    请问选了一个之后,我能不能用gettext的方法拿到display里面的内容?我拿到了,在追加.titlesp[k].getText()这个能不能用个字符串代替?