pbp Δημοσ. 13 Φεβρουαρίου 2012 Δημοσ. 13 Φεβρουαρίου 2012 Γεια σας, Θα ήθελα να ρωτήσω με ποια συνάρτηση μπορώ να αλλάξω το μέγεθος ενός JButton ή JLabel ή JTextField ή οτιδήποτε άλλο? Με την setSize() δεν γίνεται καμία αλλαγή στο μέγεθος. Ευχαριστώ.
nakayama Δημοσ. 13 Φεβρουαρίου 2012 Δημοσ. 13 Φεβρουαρίου 2012 Εξαρτάται από τι Layout χρησιμοποιείς, FlowLayout,BorderLayout,GridLayout? import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class ButtonDemo extends JFrame implements ActionListener { protected Container cnt; protected JPanel flowpanel,gridpanel,borderpanel; protected JButton flowbutton,gridbutton,borderbutton; public ButtonDemo() { cnt = getContentPane(); cnt.setLayout(new BorderLayout()); flowbutton = new JButton("Flow"); flowbutton.addActionListener(this); flowpanel = new JPanel(); flowpanel.setLayout(new FlowLayout()); flowpanel.add(flowbutton); gridbutton = new JButton("Grid"); gridbutton.addActionListener(this); gridpanel = new JPanel(); gridpanel.setLayout(new GridLayout(1,2)); gridpanel.add(gridbutton); borderbutton = new JButton("Border"); borderbutton.addActionListener(this); borderpanel = new JPanel(); borderpanel.setLayout(new BorderLayout()); borderpanel.add(borderbutton,BorderLayout.NORTH); cnt.add(flowpanel,BorderLayout.NORTH); cnt.add(gridpanel,BorderLayout.CENTER); cnt.add(borderpanel,BorderLayout.SOUTH); setSize(400,400); setVisible(true); } public void actionPerformed(ActionEvent evt) { } public static void main(String [] args) { ButtonDemo bd = new ButtonDemo(); bd.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent wvt) { System.exit(0); } } ); } }
virxen75 Δημοσ. 13 Φεβρουαρίου 2012 Δημοσ. 13 Φεβρουαρίου 2012 .setMaximumSize(new Dimension(400, 400)); .setPreferredSize(new Dimension(100, 100)); .setMinimumSize(new Dimension(100,100)); δοκίμασε με τις παραπάνω μεθόδους
pbp Δημοσ. 15 Φεβρουαρίου 2012 Μέλος Δημοσ. 15 Φεβρουαρίου 2012 Εξαρτάται από τι Layout χρησιμοποιείς, FlowLayout,BorderLayout,GridLayout? import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class ButtonDemo extends JFrame implements ActionListener { protected Container cnt; protected JPanel flowpanel,gridpanel,borderpanel; protected JButton flowbutton,gridbutton,borderbutton; public ButtonDemo() { cnt = getContentPane(); cnt.setLayout(new BorderLayout()); flowbutton = new JButton("Flow"); flowbutton.addActionListener(this); flowpanel = new JPanel(); flowpanel.setLayout(new FlowLayout()); flowpanel.add(flowbutton); gridbutton = new JButton("Grid"); gridbutton.addActionListener(this); gridpanel = new JPanel(); gridpanel.setLayout(new GridLayout(1,2)); gridpanel.add(gridbutton); borderbutton = new JButton("Border"); borderbutton.addActionListener(this); borderpanel = new JPanel(); borderpanel.setLayout(new BorderLayout()); borderpanel.add(borderbutton,BorderLayout.NORTH); cnt.add(flowpanel,BorderLayout.NORTH); cnt.add(gridpanel,BorderLayout.CENTER); cnt.add(borderpanel,BorderLayout.SOUTH); setSize(400,400); setVisible(true); } public void actionPerformed(ActionEvent evt) { } public static void main(String [] args) { ButtonDemo bd = new ButtonDemo(); bd.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent wvt) { System.exit(0); } } ); } } Ευχαριστώ πολύ φίλε, ο τρόπος σου δουλεύει μια χαρά. Μήπως μπορείς να μου δώσεις ένα γενικό κανόνα για το πότε μπορώ να αλλάζω το size και πότε όχι? Βασικά τώρα που το ξανασκεύτομαι ο τρόπος σου είναι λίγο "ψιλομούφα" Αλλάζεις το μέγεθος του JFrame και όχι του κουμπιού Και επειδή αλλάζει το CENTER ανάλογα με το μέγεθος του JFrame , αλλάζει και το μέγεθος του κουμπιού. Δεν υπάρχει κάποιος τρόπος που να λέμε πχ button.setSize(...); ?
virxen75 Δημοσ. 15 Φεβρουαρίου 2012 Δημοσ. 15 Φεβρουαρίου 2012 Δεν υπάρχει κάποιος τρόπος που να λέμε πχ button.setSize(...); ? είδες τις μεθόδους που γράφω πιο πάνω?
pbp Δημοσ. 15 Φεβρουαρίου 2012 Μέλος Δημοσ. 15 Φεβρουαρίου 2012 είδες τις μεθόδους που γράφω πιο πάνω? Ναι δεν αλλάζει τίποτα.
virxen75 Δημοσ. 16 Φεβρουαρίου 2012 Δημοσ. 16 Φεβρουαρίου 2012 Ναι δεν αλλάζει τίποτα. δυστυχώς το ξέρω..... > import javax.swing.JButton; import javax.swing.JFrame; import java.awt.Dimension; import java.awt.FlowLayout; public class Test extends JFrame{ public Test(){ JButton button1=new JButton("button1"); button1.setMaximumSize(new Dimension(200, 200)); button1.setPreferredSize(new Dimension(200, 200)); button1.setMinimumSize(new Dimension(200,200)); JButton button2=new JButton("button2"); button2.setMaximumSize(new Dimension(100, 100)); button2.setPreferredSize(new Dimension(100, 100)); button2.setMinimumSize(new Dimension(100,100)); setLayout(new FlowLayout()); add(button1); add(button2); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(400,400); setVisible(true); } public static void main(String []args){ new Test(); } }
nakayama Δημοσ. 16 Φεβρουαρίου 2012 Δημοσ. 16 Φεβρουαρίου 2012 Για τσέκαρε και αυτό import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class Test extends JFrame { protected Container cnt; public Test() { super("It is not moufa"); cnt = getContentPane(); cnt.setLayout(null); JButton b1 = new JButton("one"); JButton b2 = new JButton("two"); JButton b3 = new JButton("three"); cnt.add(b1); cnt.add(b2); cnt.add(b3); Insets insets = cnt.getInsets(); Dimension size = b1.getPreferredSize(); b1.setBounds(25 + insets.left, 5 + insets.top, size.width, size.height); size = b2.getPreferredSize(); b2.setBounds(55 + insets.left, 40 + insets.top, size.width, size.height); size = b3.getPreferredSize(); b3.setBounds(150 + insets.left, 15 + insets.top, size.width + 50, size.height + 20); setSize(300 + insets.left + insets.right,125 + insets.top + insets.bottom); setVisible(true); } public static void main(String []args) { Test mytest = new Test(); mytest.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent wvt) { System.exit(0); } } ); } }
pbp Δημοσ. 17 Φεβρουαρίου 2012 Μέλος Δημοσ. 17 Φεβρουαρίου 2012 Για τσέκαρε και αυτό import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class Test extends JFrame { protected Container cnt; public Test() { super("It is not moufa"); cnt = getContentPane(); cnt.setLayout(null); JButton b1 = new JButton("one"); JButton b2 = new JButton("two"); JButton b3 = new JButton("three"); cnt.add(b1); cnt.add(b2); cnt.add(b3); Insets insets = cnt.getInsets(); Dimension size = b1.getPreferredSize(); b1.setBounds(25 + insets.left, 5 + insets.top, size.width, size.height); size = b2.getPreferredSize(); b2.setBounds(55 + insets.left, 40 + insets.top, size.width, size.height); size = b3.getPreferredSize(); b3.setBounds(150 + insets.left, 15 + insets.top, size.width + 50, size.height + 20); setSize(300 + insets.left + insets.right,125 + insets.top + insets.bottom); setVisible(true); } public static void main(String []args) { Test mytest = new Test(); mytest.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent wvt) { System.exit(0); } } ); } } το cnt.setLayout(null); τι κάνει?
nakayama Δημοσ. 18 Φεβρουαρίου 2012 Δημοσ. 18 Φεβρουαρίου 2012 Σε βοηθάει να οργανώσεις τα gui components σου βάση των Insets και Dimension, χωρίς τους "περιορισμούς" των layout managers.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα