Feel me get in Δημοσ. 11 Ιουνίου 2009 Δημοσ. 11 Ιουνίου 2009 Για κάποιο λόγο όταν κάνω setDisplay(true) το frame μου, ανοίγει 2 παράθυρα. To πρόγραμμα φορτώνει τα μοντέλα από ένα εξωτερικό αρχείο μέσω της κλάσης Deigmatologio. Μην σκαλώσετε σε μεθόδους που χρησιμοποιεί το αντικείμενο deigm. Ο κώδικας είναι ο εξής: >import java.io.*; import java.util.Vector; import java.awt.event.*; import java.awt.BorderLayout; import java.awt.Font; import java.awt.Color; import javax.swing.*; public class Tabbed extends JFrame implements ActionListener { private JComboBox combo; private JTabbedPane tabbedPane; private Deigmatologio deigm = new Deigmatologio(); private JLabel label1; private JLabel label2; private JLabel labelIcon; private JFrame frameModel; private JTextArea comments; private String modIcon [] = {"\\Cars\\volkswagen_golf_gti_hr-02.jpg", "\\Cars\\fiat_punto1200cc2001f34.jpg", "\\Cars\\peugeot206.jpg", "\\Cars\\Opel-Astra-OPC-1024x768.jpg", "\\Cars\\05-clk-coupe-f3q-f.jpg", "\\Cars\\69-mazda-mx-5.jpg", "\\Cars\\fiat_grande_punto_101.jpg", "\\Cars\\porsche-cayenne-001.jpg", "\\Cars\\ford_focus_cc_black_magic_images_1.jpg", "\\Cars\\79-Datsun1.JPG", "\\Cars\\mitsubishi10.jpg", "\\Cars\\2008_jeep_grand_cherokee_green.jpg", "\\Cars\\sport-nissan-navara-top.jpg", }; private Icon icons[] = { new ImageIcon ( getClass().getResource( modIcon[0] ) ), new ImageIcon ( getClass().getResource( modIcon[1] ) ), new ImageIcon ( getClass().getResource( modIcon[2] ) ), new ImageIcon ( getClass().getResource( modIcon[3] ) ), new ImageIcon ( getClass().getResource( modIcon[4] ) ), new ImageIcon ( getClass().getResource( modIcon[5] ) ), new ImageIcon ( getClass().getResource( modIcon[6] ) ), new ImageIcon ( getClass().getResource( modIcon[7] ) ), new ImageIcon ( getClass().getResource( modIcon[8] ) ), new ImageIcon ( getClass().getResource( modIcon[9] ) ), new ImageIcon ( getClass().getResource( modIcon[10] ) ), new ImageIcon ( getClass().getResource( modIcon[11] ) ), new ImageIcon ( getClass().getResource( modIcon[12] ) ), }; private Vector<String> names = new Vector(); private JButton orderButton2 = new JButton("ORDER IT NOW"); private JButton exit = new JButton("EXIT"); public Tabbed() { super("Main Program"); labelIcon = new JLabel(); deigm.loadFile("model_index.txt"); //names.add("<Please Choose The Model You Wish To Purchase>"); for (int i=0; i<deigm.carSize(); i++) { String s = (deigm.carGet(i)).getModelId(); names.add(s); } comments = new JTextArea(40, 35); comments.setLineWrap(true); comments.setWrapStyleWord(true); comments.setEditable(false); comments.setOpaque(false); tabbedPane = new JTabbedPane(); combo = new JComboBox( names ); combo.setMaximumRowCount( names.size()); combo.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent event ) { if (event.getStateChange() == ItemEvent.SELECTED ) labelIcon.setIcon( icons[ combo.getSelectedIndex()] ); comments.setText(null); comments.insert((deigm.carGet(combo.getSelectedIndex())).toString(), 0); Font font = new Font("Serif" ,Font.BOLD, 11); comments.setFont(font); JPanel panel3 = new JPanel(); frameModel = new JFrame((deigm.carGet(combo.getSelectedIndex())).getName()); //frame.setLayout(new BorderLayout()); frameModel.setBounds(400, 150, 10, 10); frameModel.setSize( 370, 570 ); panel3.add(labelIcon); panel3.add(comments, BorderLayout.CENTER); frameModel.add(orderButton2, BorderLayout.NORTH); frameModel.add(exit, BorderLayout.SOUTH); frameModel.setResizable(false); //frameModel.setUndecorated(true); frameModel.add(panel3); frameModel.setVisible(true); } } ); orderButton2.addActionListener(this); exit.addActionListener(this); label1 = new JLabel("Panel1", SwingConstants.CENTER); JPanel panel1 = new JPanel(); panel1.add(combo); tabbedPane.addTab("Models", null, panel1, "Models mate"); label2 = new JLabel("Panel2", SwingConstants.CENTER); JPanel panel2 = new JPanel(); panel2.add(label2); tabbedPane.addTab("Orders", null, panel2, "Orders mate"); add( tabbedPane ); } public static void main (String args []) { Tabbed tabbed = new Tabbed(); tabbed.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); tabbed.setSize( 500, 500 ); tabbed.setVisible(true); } } Ευχαριστώ προκαταβολικά όποιον ρίξει κάνα βλέφαρο
virxen75 Δημοσ. 11 Ιουνίου 2009 Δημοσ. 11 Ιουνίου 2009 > import java.io.*; import java.util.Vector; import java.awt.event.*; import java.awt.BorderLayout; import java.awt.Font; import java.awt.Color; import javax.swing.*; public class Tabbed extends JFrame //implements ActionListener { private JComboBox combo; private JTabbedPane tabbedPane; //private Deigmatologio deigm = new Deigmatologio(); private JLabel label1; private JLabel label2; private JLabel labelIcon; private JFrame frameModel; private JTextArea comments; private String modIcon [] = {"\\Cars\\volkswagen_golf_gti_hr-02.jpg", "\\Cars\\fiat_punto1200cc2001f34.jpg", "\\Cars\\peugeot206.jpg", "\\Cars\\Opel-Astra-OPC-1024x768.jpg", "\\Cars\\05-clk-coupe-f3q-f.jpg", "\\Cars\\69-mazda-mx-5.jpg", "\\Cars\\fiat_grande_punto_101.jpg", "\\Cars\\porsche-cayenne-001.jpg", "\\Cars\\ford_focus_cc_black_magic_images_1.jpg", "\\Cars\\79-Datsun1.JPG", "\\Cars\\mitsubishi10.jpg", "\\Cars\\2008_jeep_grand_cherokee_green.jpg", "\\Cars\\sport-nissan-navara-top.jpg", }; // private Icon icons[] = { new ImageIcon ( getClass().getResource( modIcon[0] ) ), // new ImageIcon ( getClass().getResource( modIcon[1] ) ), // new ImageIcon ( getClass().getResource( modIcon[2] ) ), // new ImageIcon ( getClass().getResource( modIcon[3] ) ), // new ImageIcon ( getClass().getResource( modIcon[4] ) ), // new ImageIcon ( getClass().getResource( modIcon[5] ) ), // new ImageIcon ( getClass().getResource( modIcon[6] ) ), // new ImageIcon ( getClass().getResource( modIcon[7] ) ), // new ImageIcon ( getClass().getResource( modIcon[8] ) ), // new ImageIcon ( getClass().getResource( modIcon[9] ) ), // new ImageIcon ( getClass().getResource( modIcon[10] ) ), // new ImageIcon ( getClass().getResource( modIcon[11] ) ), // new ImageIcon ( getClass().getResource( modIcon[12] ) ), // }; private Vector<String> names = new Vector(); private JButton orderButton2 = new JButton("ORDER IT NOW"); private JButton exit = new JButton("EXIT"); public Tabbed() { super("Main Program"); labelIcon = new JLabel(); // deigm.loadFile("model_index.txt"); //names.add("<Please Choose The Model You Wish To Purchase>"); // for (int i=0; i<deigm.carSize(); i++) // { // String s = (deigm.carGet(i)).getModelId(); // names.add(s); // } comments = new JTextArea(40, 35); comments.setLineWrap(true); comments.setWrapStyleWord(true); comments.setEditable(false); comments.setOpaque(false); tabbedPane = new JTabbedPane(); combo = new JComboBox( names ); combo.setMaximumRowCount( names.size()); combo.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent event ) { if (event.getStateChange() == ItemEvent.SELECTED ) // labelIcon.setIcon( icons[ combo.getSelectedIndex()] ); comments.setText(null); // comments.insert((deigm.carGet(combo.getSelectedIndex())).toString(), 0); Font font = new Font("Serif" ,Font.BOLD, 11); comments.setFont(font); JPanel panel3 = new JPanel(); frameModel = new JFrame();//(deigm.carGet(combo.getSelectedIndex())).getName()); //frame.setLayout(new BorderLayout()); frameModel.setBounds(400, 150, 10, 10); frameModel.setSize( 370, 570 ); panel3.add(labelIcon); panel3.add(comments, BorderLayout.CENTER); frameModel.add(orderButton2, BorderLayout.NORTH); frameModel.add(exit, BorderLayout.SOUTH); frameModel.setResizable(false); //frameModel.setUndecorated(true); frameModel.add(panel3); frameModel.setVisible(true); } } ); //orderButton2.addActionListener(this); //exit.addActionListener(this); label1 = new JLabel("Panel1", SwingConstants.CENTER); JPanel panel1 = new JPanel(); panel1.add(combo); tabbedPane.addTab("Models", null, panel1, "Models mate"); label2 = new JLabel("Panel2", SwingConstants.CENTER); JPanel panel2 = new JPanel(); panel2.add(label2); tabbedPane.addTab("Orders", null, panel2, "Orders mate"); add( tabbedPane ); } public static void main (String args []) { Tabbed tabbed = new Tabbed(); tabbed.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); tabbed.setSize( 500, 500 ); tabbed.setVisible(true); } } απενεργοποιώντας κάποια για να δουλέψει είδα να βγάζει μόνο 1 παράθυρο στείλε όλο τον κώδικα και τα αρχεία αν θες κάτι παραπάνω μπορεί να οφείλεται αλλού το πρόβλημα
Feel me get in Δημοσ. 11 Ιουνίου 2009 Μέλος Δημοσ. 11 Ιουνίου 2009 Βασικά το πρόβλημα επιλύθηκε, βάζοντας ολόκληρη την κατασκευή του frameModel μέσα στην if (event.getStateChange() == ItemEvent.SELECTED ) Αν παρατηρήσεις στον αρχικό μου κώδικα, αυτό το if έκανε μόνο την setIcon. υχαριστώ πάντως για τον χρόνο σου
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.