[Java] Har kört fast lite med Swing

Permalänk
Medlem

[Java] Har kört fast lite med Swing

Hej, är ganska nybörjare och experimenterar lite med Swing, men har kört fast lite.

Det jag skulle vilja göra är att mainFrame ska anpassa sin storlek efter innehållet. Satt en fast storlek på 500, 150 temporärt, men så här ser koden ut just nu. Googlade lite och många sa att man kunde anropa .pack() men det gjorde ingen skillnad alls, om jag inte gjorde något fel då. Så nu vänder jag mig hit istället.

package main; import java.awt.Color; import java.awt.Dimension; import javax.swing.*; public class main { public static void main(String[] args){ // Frames JFrame mainFrame = new JFrame("It's the frame"); // Panels JPanel panel = new JPanel(); // Buttons JButton button1 = new JButton(); JButton button2 = new JButton(); JButton button3 = new JButton(); JButton button4 = new JButton(); // Frame mainFrame.setVisible(true); mainFrame.add(panel); mainFrame.setResizable(false); mainFrame.setSize(500, 150); // Panel panel.add(button1); panel.add(button2); panel.add(button3); panel.add(button4); // Button 1 button1.setBackground(Color.RED); button1.setForeground(Color.RED); button1.setPreferredSize(new Dimension(100, 100)); button1.setBorder(null); // Button 2 button2.setBackground(Color.GREEN); button2.setForeground(Color.GREEN); button2.setPreferredSize(new Dimension(100, 100)); button2.setBorder(null); // Button 3 button3.setBackground(Color.BLUE); button3.setForeground(Color.BLUE); button3.setPreferredSize(new Dimension(100, 100)); button3.setBorder(null); // Button 4 button4.setBackground(Color.YELLOW); button4.setForeground(Color.YELLOW); button4.setPreferredSize(new Dimension(100, 100)); button4.setBorder(null); } }

Visa signatur

Windows användare sedan 1991. Numera MacBook Pro M1 Pro.

Permalänk
Medlem

Nu är jag ingen Java guru men det kan inte vara så att du kan ha glömt att ändra "mainFrame.setResizable(false);" till true?

Visa signatur

Bara för att du inte hittar ett virus så betyder det inte att det inte finns där.

Jag anmäler mina egna kommentarer för att någon ska läsa dem.
<!-- Sad Smiley -->

Permalänk
Medlem

För att din frame ska justera sig efter olika storlekar så behöver den vara uppbyggd med en (eller flera) LayoutManagers.

See http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.... för mer info.

//C

Permalänk
Medlem
Skrivet av conio:

För att din frame ska justera sig efter olika storlekar så behöver den vara uppbyggd med en (eller flera) LayoutManagers.

See http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.... för mer info.

//C

java använder väl en standard layout manager? Typ boderlayout eller nåt så det ska inte behövas. Prova lägg till mainFrame.pack(); efter du gjort alla knappar?

....... // Button 4 button4.setBackground(Color.YELLOW); button4.setForeground(Color.YELLOW); button4.setPreferredSize(new Dimension(100, 100)); button4.setBorder(null); mainFrame.pack();

Permalänk
Medlem
Skrivet av coopish:

java använder väl en standard layout manager? Typ boderlayout eller nåt så det ska inte behövas. Prova lägg till mainFrame.pack(); efter du gjort alla knappar?

....... // Button 4 button4.setBackground(Color.YELLOW); button4.setForeground(Color.YELLOW); button4.setPreferredSize(new Dimension(100, 100)); button4.setBorder(null); mainFrame.pack();

Fungera utmärkt! En tackar, en tackar. Ja, tack ni andra också som tog er tid att läsa/svara.

Visa signatur

Windows användare sedan 1991. Numera MacBook Pro M1 Pro.