JComboBox πρόβλημα

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 26 Δεκ 2004 14:42

Γεια χαρά σε όλους

Αρχισα να γράφω μια εφαρμογή σαν ζωγραφική (εργασία πανεπιστημίου)
και είδα το εξής περίεργο:
Μέσα στην εργασία ζητάει όταν μια επιλογή τύπου JCheckBoxMenuItem είναι τσεκαρισμένη να εμφανίζεται ενα comboBox. Αυτό το έβγαλα αλλά όταν τσεκάρω την επιλογή πάνω από μια φορά και ανοίγω το comboBox βλέπω τόσα items μεσα όσες φόρες έχει τσεκαριστεί η επιλογή απο το menu.
ΠΧ οι επιλογές μέσα στο comboBox ειναι 8
εαν το τσεκάρω 2η φορα να εμφανιστεί οι επιλογές θα είναι 16 και πάει λεγοντας 3η φορα 24 κτλ...

Παρακάτω είναι ο κώδικας:

Κώδικας: Επιλογή όλων

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JUGFrame extends JFrame
 {
 	public JComboBox fillColor = new JComboBox();
 	public JUGFrame()
 	  {
 		setTitle("Java Ultimate Graphist");
 		setSize(500,500);
 		setResizable(false);
 		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 		fillColor.setEnabled(false);
 		JMenuBar menuBar = new JMenuBar();//create the menu bar
 		setJMenuBar(menuBar);
 		menuBar.add(editMenu()); //add the edit menu on the menu bar
 	    menuBar.add(drawMenu()); //add the draw menu on the menu bar
 	    menuBar.add(helpMenu()); //add the help menu on the menu bar
        Container contentPane = getContentPane();
        JPanel mainSouthPanel = new JPanel();
        mainSouthPanel.add(panel1());
        contentPane.add(mainSouthPanel, BorderLayout.SOUTH);

 	  }
 //------------------------------Edit menu---------------------------\\	  
 	
 	/**
 	 *Creates the Edit menu
 	 *@return the Edit menu
 	 */
 	public JMenu editMenu()
 	 {
 	 	JMenu editMenu = new JMenu("Edit");
        editMenu.add(undoLast());
        editMenu.addSeparator();
        editMenu.add(cls());
        editMenu.add(exit());
       return editMenu;	 
 	 } 
 	 
 	/**
 	 *Creates the Undo last item
 	 *@return the Undo last item
 	 */
 	public JMenuItem undoLast()
 	 {
 	 	JMenuItem undoLast = new JMenuItem("Undo last");
 	 	return undoLast;
 	 }
 	 
 	/**
 	 *Creates the Clear screen item
 	 *@return the cls item
 	 */ 
 	public JMenuItem cls()
 	 {
 	 	JMenuItem cls = new JMenuItem("Clear screen");
 	 	return cls;
 	 } 
 	/**
 	 *Creates the Exit item
 	 *@return the exit item
 	 */ 
 	public JMenuItem exit()
 	 {
 	 	JMenuItem exit = new JMenuItem("Exit");
 	 	class MousePressListener implements MouseListener
 	 	 {
 	 	 	public void mousePressed(MouseEvent e)
 	 	 	 {
 	 	 	 	System.exit(0); 
 	 	 	 }
 	 	 	//do-nothing methods
 	 	 	public void mouseReleased(MouseEvent e){}
 	 	 	public void mouseClicked(MouseEvent e){} 
 	 	    public void mouseEntered(MouseEvent e){}
 	 	    public void mouseExited(MouseEvent e){}
 	 	 }
 	 	MouseListener listener = new MousePressListener();
 	 	exit.addMouseListener(listener);
 	 	return exit;
 	 }  
 	 
 //--------------------------Draw menu----------------------------\\	 
   
   /**
    *Creates the Draw menu
    *@return the Draw menu
    */
    public JMenu drawMenu()
     {
    	JMenu drawMenu = new JMenu("Draw");
    	drawMenu.add(fillShapes());
    	return drawMenu;
     }
    
   /**
    *Creates the fill shapes chech item
    *@return the fill shapes item
    */ 
    public JCheckBoxMenuItem fillShapes()
     {
     	final JCheckBoxMenuItem fillShapes = new JCheckBoxMenuItem("Fill Shapes");
     	
     	class MousePressListener implements MouseListener
 	 	 {
 	 	 	public void mousePressed(MouseEvent e)
 	 	 	 {
 	 	      
 	 	 	 	 if(fillShapes.isSelected())
 	 	 	 	    fillColor().setEnabled(false); 
 	 	 	 else if(!fillShapes.isSelected())
 	 	 	        fillColor.setEnabled(true); 	     
 	 	 	 
 	 	 	 }
 	 	 	//do-nothing methods
 	 	 	public void mouseReleased(MouseEvent e){}
 	 	 	public void mouseClicked(MouseEvent e){} 
 	 	    public void mouseEntered(MouseEvent e){}
 	 	    public void mouseExited(MouseEvent e){}
 	 	 }
 	 	MouseListener listener = new MousePressListener();
 	 	fillShapes.addMouseListener(listener);
    	
    return fillShapes;
     }
 //------------------------Help menu------------------------------\\
   
   /**
    *Creates the Help menu
    *@return the Help menu
    */
    public JMenu helpMenu()
     {          
    	JMenu helpMenu = new JMenu("Help");
    	helpMenu.add(about());
    	return helpMenu;
     } 
        
   /**
 	 *Creates the About item
 	 *@return the About item
 	 */ 
 	public JMenuItem about()
 	 {
 	 	JMenuItem about = new JMenuItem("About");
 	 	return about;
 	 }
 //----------------------South components------------------------\\
 
    /**
 	 *Creates a panel contains the 
 	 *south components with itsown labels
 	 *@return the panel1
 	 */    
   public JPanel panel1()
    {
    	JPanel panel1 = new JPanel();
    	JLabel shapesLabel = new JLabel("Shapes");
    	panel1.add(shapesLabel);
    	panel1.add(shapes()); 
    	JLabel fillColorLabel = new JLabel("Fill colour");
    	panel1.add(fillColorLabel);
    	panel1.add(fillColor()); 
    	JLabel lineThickness = new JLabel("Line thickness");
    	panel1.add(lineThickness);
    	panel1.add(lineThickness());
    	return panel1;  	
    }
    
    /**
 	 *Creates the Shapes component
 	 *@return the Shape component
 	 */ 
 	public JComboBox shapes()
 	 {
 	 	
 	 	JComboBox shapes = new JComboBox();
 	 	shapes.addItem("  ");
 	 	shapes.addItem("Ellipse");
 	 	shapes.addItem("Rectangle");
 	 	shapes.addItem("Line");
 	 	return shapes;
 	 }	
 	 
 	/**
 	 *Creates the fill colour component
 	 *@return the fill colour component
 	 */ 
    public JComboBox fillColor()
 	 {
 	 		 	
 //	 	JComboBox fillColor = new JComboBox();
 //	  	fillColor.setEnabled(false);
 	 	fillColor.addItem("  ");
 	 	fillColor.addItem("Red");
 	 	fillColor.addItem("Green");
 	 	fillColor.addItem("Blue");
 	 	fillColor.addItem("Yellow");
 	 	fillColor.addItem("Black");
 	 	fillColor.addItem("White");
 	 	fillColor.addItem("Magenta");
 	 
/* 	 class ComboBoxListener implements ActionListener
 	  {
 	  	public void actionPerformed(ActionEvent e)
 	  	{
 	  		if(fillShapes.isSelected())
 	 	  fillColor.setEnabled(false);
 	  	}
 	  }	
 	  ActionListener listener = new ComboBoxListener();
 	  fillColor.addActionListener(listener);
 */	 	
 	 return fillColor;
 	 } 
   
   /**
 	 *Creates the line thickness component
 	 *@return the line thickness component
 	 */
   public JTextField lineThickness()
    {
    	JTextField line = new JTextField("0",3);
    	return line;
    } 
    //The main 
     public static void main(String [] args)
 	  {
 	JUGFrame frame = new JUGFrame();
        frame.show();
      }
 }
Κάνετε ένα compile για να καταλάβετε τι εννοώ

Δώστε βάση στο οτι το fillShapes object το φτιάχνω σαν public στην αρχή του κώδικα, απλά για να μπορω να το έλενχω μέσα στο listener του JCheckBoxMenuItem.

Για πείτε καμιά ιδέα...
Εικόνα

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 26 Δεκ 2004 14:47

Επιστρεφω κατα τις 4ης... εαν μπορείτε please help
Εικόνα

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

JComboBox πρόβλημα

Δημοσίευση από soteres2002 » 26 Δεκ 2004 17:25

i moni lisi pou sou menei einai na rithmizeis aplos sto setVisible(true/false); kai den tha exeis problima! to dokimasa sto prog sou. dld to proto CHECK sto checkbox tha arxikopoieis me ton kodika to checkbox, otan to kseclickareis tha eksafanizetai aplos, meta otan to ksanaclickareis tha emfanizetai xoris kanena problem.

elpizo na boithisa.

a kai an den thes na kanei hide/show pakse ligo giftika. aplos kane ena if(combobox.items().length() = 8) {
//do something
}

gia na "spas" tin anepithimiti roi tou prog sou.

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 26 Δεκ 2004 19:57

soteres τώρα γύρισα... Βασικα ψιλομπερδεύτικα... τι εννοείς αρχικοποιήσεις?? ? Δείγμα κώδικα μπορεις να μου δώσεις ?
Εικόνα

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

JComboBox πρόβλημα

Δημοσίευση από soteres2002 » 26 Δεκ 2004 21:01

Dr_Java otan leme "arxikopoio" ennooume "dilono" px "arxikopoio mia metabliti "var" ". nomizo oti sou einai gnosto apo to panepistimio. einai enas oros poy xrisimopoieitai poli ston programmatismo, kai poso mallon stin Java pou einai plousia se sintaktikes idiomorfies kai exei polla idiotipa xaraktiristika.

Anyway, sto thema mas. Den exo egkatestimeno ton JVM sto PC moy (ase pou apo cafe baino mesa). opote kai kodika na sou doso, den ofelei (giati den tha ton exo testarei!)

Loipon:

ekei pou dimiourgeis to combobox gia proti fora otan kaneis click pano sto checkbox tha einai kapos etsi sto tmima poy xeirizesai sto antikeimeno JComboBox:

Κώδικας: Επιλογή όλων

//px re paidi mou pes oti exeis ena checkbox "some" pou xeirizetai to hide/show
//tha ekanes kati san ki auto

public void mousePressed(MouseEvent e) {
      if(e.getID() == "some") {
                 if(combobox.isVisible()) {
                         combobox.setVisible(false);
                 } else {
                          JCombobox somebx = new JComboBox("some box");
                          somebx.addItem("item1");
                          //...
                          //...
                 }
      } else {

      }
}
den poies classeis xrisimopoiei o compiler sou. pantos se emena souleboune ok, giati ki ego eftiaksa programma zografikis se Java sto parelthon.

Kai eixe fisika perissotera xaraktiristika ap oti apaitei to project sou, px core epeksergasia 2D grafikon. me polli xristikotita. kai pl alla

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 26 Δεκ 2004 21:34

Soteres thanks για την επεξήγηση του όρου αλλά δεν είμαι σε ελληνικό πανεπιστήμιο αλλα αγγλικό οπότε καταλεβαίνεις οτι όρους τους ξέρω μόνο σε αγγλικά και όχι ελληνικά! Τεσπά!
Κατάλαβα τι εννοείς απλά εγώ δεν θέλω να πάιξω με το visibility του comboBox αλλά με το εαν είναι enable ή όχι... Αλλα και πάλι δοκίμασα το setVisible() και κάνει πάλι τα ίδια... Από΄τι καταλαβαίνω αυτό το πράγμα θα πρέπει να κάνει ενα recursion Για να μην εμφανίζει 2 και 3 φορές τα ίδια!!! Τεσπά σε ευχαριστώ πάρα πολύ για την βοήθεια !!!
Εικόνα

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

JComboBox πρόβλημα

Δημοσίευση από soteres2002 » 30 Δεκ 2004 21:11

ok, o agglikos oros einai "to initialize" Am Eng h "to initialise" Br Eng.

episis, an den thes na pekseis me to visible/in~ state. boreis na kaneis mia alli magia.

sto deutero iteration boreis na kaneis to eksis:

diloneis mia metabliti tin proti fora:

Κώδικας: Επιλογή όλων

short entries = jcombobox.items().length();

Κώδικας: Επιλογή όλων

if(entries > [desired length]) {
    //
     for&#40;int i = 0; i <= entries; i++&#41; &#123;
            jcombobox.removeAt&#40;i&#41;;
     &#125;
     //tora to ksanagemizeis
    jcombobox.addItem&#40;"ena entry"&#41;;
    //...
    //...
&#125;
hope i've helped!

a, pos ton lene ton kathigiti sou?

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 31 Δεκ 2004 15:17

thanks και πάλι... Τελίκα το βρήκα έκανα initialize στην αρχή της class public final για να έχει access και στον listener... Τελικά έπαιξε οκ. Tώρα έχω αλλού ίδους προβλήματα του στυλ ότι όλα τα objects τα περνάω μεσα σε ενα arrylist για να ενεργοποιηθούν οι επιλογές undo και clear screen.... Tο πακέτο είναι ότι θα πρέπει τα shapes για γίνονται draw μέσα από το arrayList με τα δικά τους χρώματα και τις διαστάσεις που έχει από τον listener του mouse!!! Δεν είναι και ευκολο. Αυτά που σου είπα τώρα είναι εντελός περιληπτικά!!!
Εικόνα

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

JComboBox πρόβλημα

Δημοσίευση από soteres2002 » 01 Ιαν 2005 17:03

Dr_Java έγραψε:thanks και πάλι... Τελίκα το βρήκα έκανα initialize στην αρχή της class public final για να έχει access και στον listener... Τελικά έπαιξε οκ. Tώρα έχω αλλού ίδους προβλήματα του στυλ ότι όλα τα objects τα περνάω μεσα σε ενα arrylist για να ενεργοποιηθούν οι επιλογές undo και clear screen.... Tο πακέτο είναι ότι θα πρέπει τα shapes για γίνονται draw μέσα από το arrayList με τα δικά τους χρώματα και τις διαστάσεις που έχει από τον listener του mouse!!! Δεν είναι και ευκολο. Αυτά που σου είπα τώρα είναι εντελός περιληπτικά!!!
thes kapoia stigmi na sou stilo to diko mou to project? einai kai afto zografikis kai kano xrisi olon sxedon ton utilities tis java 2. mexri pou egrapsa kai sibiestiko san add-on gia na apo~simbiezeis eikones. oxi jpg, gifs kai ta gnosta, alla alla diadika arxeia.

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 02 Ιαν 2005 00:34

Χρόνια πολλά με τις καλύτερες ευχές μου!!!
Ναι φυσικά και θέλω το ρωτάς κιόλας!!! όποτε μπορείς στείλε ενα mail στο admin@htmlportal.gr :D !!!
Εικόνα

z200wr
Δημοσιεύσεις: 18
Εγγραφή: 01 Μαρ 2004 23:30
Τοποθεσία: LEEDS/UK

JComboBox πρόβλημα

Δημοσίευση από z200wr » 28 Ιαν 2005 03:35

Re file mia aporia exw, se poio panephstimio sthn agglia kaneis OO programmin grafeis oloklhrh efarmogh kai ta exeis ola se mia Class?!?!

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

JComboBox πρόβλημα

Δημοσίευση από Dr_Java » 28 Ιαν 2005 11:56

Loipon....
1on eimai sto Bangor oualias kai
2on esy ti itheles na kanw diladi? na grapsw sto forum 3is diaforetikes classes ???? Etsi opos to edosa htan kalitera gia copy - paste kai compile.... A! twra poy teleiwse einai parapanw apo treis classes, esy pws tha tis edines edw?
Εικόνα

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες