Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Создание меню


Автор: Modelator 10.3.2005, 03:47
Код


import java.awt.*;
//inport java.event.*;
import java.applet.*;
                                     

public class Menuu extends Applet { 
            
//public First first = new First();

public void init(){



int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
Frame f = new Frame("Simulink, version 0");
f.setSize(width, height);
MenuBar mbar = new MenuBar();
f.setMenuBar(mbar);

Menu file = new Menu("File");
file.add(new MenuItem("New... "));

file.add(new MenuItem("0pen"));


file.add(new MenuItem("Close"));
file.add(new MenuItem("-"));
file.add(new MenuItem("Quit..."));
mbar.add(file);
Menu edit = new Menu("Edit");
edit.add(new MenuItem("Cut"));
edit.add(new MenuItem("Copy"));
edit.add(new MenuItem("-"));
Menu sub = new Menu("Blocks");

MenuItem First1 = new MenuItem("First1");
sub.add(First1);


/*First1.addActionListener(new ActionListener()){
       public void actionPerformed(ActionEvent e){
         FileDialog fd = new FileDialog(new Frame());
         fd.setVisible(true);
     }
   }; */

sub.add(new MenuItem("First"));
sub.add(new MenuItem("Second"));
sub.add(new MenuItem("Third"));
edit.add(sub);


edit.add(new CheckboxMenuItem("Testing"));

mbar.add(edit);
f.show();
  
    } }




Не подскажите (или общие идеи), как сделать в меню линк на дополнительное окно... мне в этом окне надо блоки создать (на подобие Simulink или LabView)... блоки на основе кнопок (думаю)... а на кнопки потом как-то рисунки (с видом операции) вклеить...

Мда, знаний мало... нужны книги по Java... наобум не получается
Есть что-нибудь стоящее по созданию меню (пособия что ли)... не особо-то нашёл.

Наверно, как апплет лучше
Domestic Cat, сорри за прошлый топик.

Автор: AntonSaburov 10.3.2005, 13:58
Что значит "сделать линк на дополнительное окно" ? Опиши задачу еще раз. И для тупых smile
Потому как совершенно не понятно, что ты хочешь получить.

В принципе в меню можно вставить любой компонент - хоть чекбокс, хоть таблицу.

Автор: Modelator 10.3.2005, 14:05
Допустим, как в эксплорере... нажимаем на "правка". Там есть функция "найти на это странице"... Нажимаем на неё, выскакивает такое маленькое окошко.
Вот мне надо, чтоб тоже выскакивало... только с блоками

Автор: djGri 10.3.2005, 14:20
создай JDialog

Автор: Modelator 10.3.2005, 14:25
Цитата
создай JDialog

А можно чуть поконкретней?

Автор: djGri 10.3.2005, 14:58
Что-то наподобии:

Код

  JDialog jd =  new JDialog();
jd.setBounds( 100,100,10,10 );
Container c = jd.getContentPane();
c.setLayout(new GridLayout(3,1) );
c.add(new JButton("1"));
c.add(new JButton("2"));
c.add(new JButton("3"));
jd.setModal( true );   
jd.pack(); 
jd.setVisible( true);

Автор: Modelator 16.3.2005, 00:06
Цитата(djGri @ 10.3.2005, 14:58)
Что-то наподобии:

Код

  JDialog jd =  new JDialog();
jd.setBounds( 100,100,10,10 );
Container c = jd.getContentPane();
c.setLayout(new GridLayout(3,1) );
c.add(new JButton("1"));
c.add(new JButton("2"));
c.add(new JButton("3"));
jd.setModal( true );   
jd.pack(); 
jd.setVisible( true);

Что-то с JDialog не вышло
Попробовал это
Код


import java.awt.*;
//import java.event.awt.*;
import java.util.*;
//import java.applet.*;

  class Di extends Dialog{
   
  Di (Frame d, String s){
  super (d, s, true);
  setBounds(50,50,300,150);
//  Frame d = new First1("Blocks");
  setLayout(new GridLayout(2,2));
   StringTokenizer st = new StringTokenizer("1 2 3 4");
  while(st.hasMoreTokens())
    add(new Button(st.nextToken()));
  setSize(200,200);
  setVisible(true);

   }
 
  public static void main(String[] args){
   Dialog d = new Di("bloki");
   d.setVisible(true);
   d.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent ev){
       System.exit(0);
      }
   });

    }  
 
  }



Тоже ошибка какая-то... WindowAdapter

Вот эта штука в книге везде, но у меня никак не хочет работать
Код

public static void main(String[] args){
   Dialog d = new Di("bloki");
   d.setVisible(true);
   d.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent ev){
       System.exit(0);
      }
   });

    }  
 
  }

Автор: Domestic Cat 16.3.2005, 00:25
Какая ошибка-то?

Автор: Modelator 16.3.2005, 00:55
Цитата(Domestic @ 16.3.2005, 00:25)
Какая ошибка-то?

Cannot resolve symbol... выделяет WindowAdapter (всегда) и new Di ("Bloki")

Автор: Domestic Cat 16.3.2005, 02:40
Цитата(Modelator @ 15.3.2005, 15:55)
выделяет WindowAdapter (всегда)


Код

import java.awt.event.*;


Цитата(Modelator @ 15.3.2005, 15:55)
и new Di ("Bloki")

так посмотри на конструктор Di - разве он принимает один аргумент?

Автор: djGri 16.3.2005, 07:27
Цитата(Modelator @ 15.3.2005, 23:06)
Что-то с JDialog не вышло

JDialog находится в библиотеке swing'a, поэтому внчале тебе надо
Код

import javax.swing.JDialog;


Все визуальные компоненты, которые начинаются с J ( JDialog , JFrame, JButton и т.д ) находятся в javax.swing

Автор: Modelator 29.3.2005, 22:10
Помогите понять, почему окно Bloki не вылезает... компелит без ошибок, окно f есть, но при нажатии на First1 ничего не происходит...

Код


import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.applet.*;
                                     

public class Menuu extends Frame {           
      public Menuu(String s){     
       super(s);
         setSize(200, 200);

         MenuBar mbar = new MenuBar();
         setMenuBar(mbar);

         Menu file = new Menu("File");
         file.add(new MenuItem("New... "));

         file.add(new MenuItem("0pen"));


         file.add(new MenuItem("Close"));
         file.add(new MenuItem("-"));
         file.add(new MenuItem("Quit..."));
         mbar.add(file);
         Menu edit = new Menu("Edit");
         edit.add(new MenuItem("Cut"));
         edit.add(new MenuItem("Copy"));
         edit.add(new MenuItem("-"));
         Menu sub = new Menu("Blocks");

         MenuItem First1 = new MenuItem("First1");
         sub.add(First1);
         
         First1.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
            
           //System.exit(0);   
           class Bloki extends Frame{
             Bloki (String s){
             super (s);       
             Frame d = new Bloki("Blocks");      
             setLayout(new GridLayout(2,2));
             StringTokenizer st = new StringTokenizer("1 2 3 4");
             while(st.hasMoreTokens())
             add(new Button(st.nextToken()));         

             d.setSize(200,200);
             d.setVisible(true);
                          d.addWindowListener(new WindowAdapter(){
               public void windowClosing(WindowEvent ev){
                System.exit(0);
                          }
                      }); 
                    } 
                  }
             }      
                           } ); 
                

         sub.add(new MenuItem("First"));
         sub.add(new MenuItem("Second"));
         sub.add(new MenuItem("Third"));
         edit.add(sub);

         edit.add(new CheckboxMenuItem("Testing"));

         mbar.add(edit);
         show();
  
         


         } 
          
         public static void main(String[] args){
                   Frame f = new Menuu("Simulink");
                   f.setVisible(true);
                   f.addWindowListener(new WindowAdapter(){
                   public void windowClosing(WindowEvent ev){
                   System.exit(0);
                          }
                      });

             }     }
             
                     

Автор: batigoal 30.3.2005, 09:26
По-моему, у тебя при щелчке на пункте меню просто определяется класс Bloki, а никаких действий и не производится.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)