Design-Probleme (Swing-Anfänger)

Status
Nicht offen für weitere Antworten.

Live

Mitglied
Hallo,

teste gerade mal ein wenig in der Aktion "Mein Programm soll schöner werden" rum ;)

Dazu (Code s.u. - logo.jpg ist eine 200*300 Bilddatei) habe ich ein paar Fragen, wo ihr mir vielleicht helfen könnt:
1. Ich möchte einen Rahmen mit der Beschriftung "Bitte auswählen" (TitledBorder !?) um die Buttons "Neue Datei erstellen" und "Datei laden" hinzufügen - wie geht das?
2. Bei Größenänderung des Fensters, sollen dieselben Buttons die Breite des Fensters ausnutzen - tun sie aber nicht :( Woran liegt das - warum reicht die Angabe "gbc.fill = GridBagConstraints.HORIZONTAL;" nicht?
3. Wie schaffe ich es, dass - nochmal die beiden Buttons - doppelt so "dick/hoch" sind?
4. Wie ist es möglich, den Hintergrund (z.B. Blau statt grau) zu färben?

So banal die Fragen auch sind, bin für Hilfe super dankbar! :autsch: :oops:


Code:
package test;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class rahmen {

	public static void main(String[] args) {
		
	    JFrame startmenue = new JFrame("Start");
	    final JDialog f = new JDialog(startmenue,"Start",true);
	    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    startmenue.setSize(500,250);  	
	  	
	    GridBagLayout gbl = new GridBagLayout();
	    GridBagConstraints gbc;
	    startmenue.getContentPane().setLayout(gbl);			
		
	    JLabel bild = new JLabel(new ImageIcon("logo.jpg"));	
	    gbc = makegbc(0, 0, 1, 4);
	    gbc.fill = GridBagConstraints.BOTH;
	    gbl.setConstraints(bild, gbc);	 
	    startmenue.getContentPane().add(bild);
	    
	    JButton neu = new JButton("Neue Datei erstellen");
	    gbc = makegbc(1, 0, 1, 1);
	    gbc.fill = GridBagConstraints.HORIZONTAL;
	    gbl.setConstraints(neu, gbc);	
	    startmenue.getContentPane().add(neu);
		
	    JButton laden = new JButton("Datei laden");
	    gbc = makegbc(1, 1, 1, 1);
	    gbc.fill = GridBagConstraints.HORIZONTAL;
	    gbl.setConstraints(laden, gbc);	
	    startmenue.getContentPane().add(laden);
	    
	    JButton exit = new JButton("Beenden");
	    gbc = makegbc(1, 3, 1, 1);
	    gbc.fill = GridBagConstraints.NONE;
	    gbc.anchor = GridBagConstraints.SOUTHEAST;
	    gbl.setConstraints(exit, gbc);	
	    startmenue.getContentPane().add(exit);
	    
	    startmenue.show();
	}
	
	public static GridBagConstraints makegbc(int x, int y, int width, int height)
	{
	    GridBagConstraints gbc = new GridBagConstraints();
	    gbc.gridx = x;
	    gbc.gridy = y;
	    gbc.gridwidth = width;
	    gbc.gridheight = height;
	    gbc.insets = new Insets(1, 1, 1, 1);
	    return gbc;
	}
}
 

sliwalker

Top Contributor
Hoi,

Code:
// java.awt importen!!! Für die Farbe!
import java.awt.*;
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Insets; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class rahmen { 

   public static void main(String[] args) { 
       
       JFrame startmenue = new JFrame("Start"); 
       final JDialog f = new JDialog(startmenue,"Start",true); 
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       startmenue.setSize(500,250);      
         
       GridBagLayout gbl = new GridBagLayout(); 
       GridBagConstraints gbc; 
       startmenue.getContentPane().setLayout(gbl);  
       
       // Hier die Farbe und bitte die zweite Zeile auch, wenn Du keinen
       // Window-Closing-Adapter benutzt. Sonst läuft das Programm weiter
       // wenn Du das Fenster wegklickst und nimmt Speicher
       startmenue.getContentPane().setBackground(Color.BLUE);
       startmenue.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
       JLabel bild = new JLabel(new ImageIcon("logo.jpg"));    
       gbc = makegbc(0, 0, 1, 4); 
       gbc.fill = GridBagConstraints.BOTH; 
       gbl.setConstraints(bild, gbc);    
       startmenue.getContentPane().add(bild); 
       
       JButton neu = new JButton("Neue Datei erstellen"); 
       gbc = makegbc(1, 0, 1, 1); 
       gbc.fill = GridBagConstraints.HORIZONTAL; 
       gbl.setConstraints(neu, gbc);    
       startmenue.getContentPane().add(neu); 
       
       JButton laden = new JButton("Datei laden"); 
       gbc = makegbc(1, 1, 1, 1); 
       gbc.fill = GridBagConstraints.HORIZONTAL; 
       gbl.setConstraints(laden, gbc);    
       startmenue.getContentPane().add(laden); 
       
       JButton exit = new JButton("Beenden"); 
       gbc = makegbc(1, 3, 1, 1); 
       gbc.fill = GridBagConstraints.NONE; 
       gbc.anchor = GridBagConstraints.SOUTHEAST; 
       gbl.setConstraints(exit, gbc);    
       startmenue.getContentPane().add(exit); 
       
       startmenue.setVisible(true);
   } 
    
   public static GridBagConstraints makegbc(int x, int y, int width, int height) 
   { 
       GridBagConstraints gbc = new GridBagConstraints(); 
       gbc.gridx = x; 
       gbc.gridy = y; 
       gbc.gridwidth = width; 
       gbc.gridheight = height; 
       gbc.insets = new Insets(1, 1, 1, 1); 
       return gbc; 
   } 
}

Mit dem Skalieren kann ich Dir nicht helfen. Müsste ich erstmal nachlesen.

greetz
SLi
 

Live

Mitglied
Danke für die Tipps! (hab bei der Color einstellung getContentPane vergessen :roll: )
Falls mir jetzt noch jemand bei den Fragen 1-3 helfen könnte, wäre das super!
 

André Uhres

Top Contributor
Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Rahmen_2 extends JFrame implements ActionListener{
    public Rahmen_2() {
        super("Start");
        setSize(400,400);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //JComponents
        buttonPanel = new JPanel();
        neu = new JButton("Neue Datei erstellen");
        laden = new JButton("Datei laden");
        exit = new JButton("Beenden");
        panel1 = new JPanel();
        panel2 = new JPanel();
        panel3 = new JPanel();
        panel4 = new JPanel();
        //buttonPanel
        buttonPanel.setLayout(new GridLayout(3, 1, 5, 5));
        buttonPanel.setBorder(BorderFactory.createTitledBorder("Bitte auswählen"));
        neu.setText("neu");
        neu.addActionListener(this);
        buttonPanel.add(neu);
        laden.setText("laden");
        laden.addActionListener(this);
        buttonPanel.add(laden);
        exit.setText("exit");
        exit.addActionListener(this);
        buttonPanel.add(exit);
        getContentPane().add(buttonPanel, BorderLayout.CENTER);
        //setBackground
        bgColor = new Color(0, 0, 255);
        panel1.setBackground(bgColor);
        panel1.setPreferredSize(new Dimension(10, 100));
        getContentPane().add(panel1, BorderLayout.NORTH);
        panel2.setBackground(bgColor);
        panel2.setPreferredSize(new Dimension(10, 100));
        getContentPane().add(panel2, BorderLayout.SOUTH);
        panel3.setBackground(bgColor);
        panel3.setPreferredSize(new Dimension(100, 10));
        getContentPane().add(panel3, BorderLayout.EAST);
        panel4.setBackground(bgColor);
        panel4.setPreferredSize(new Dimension(100, 10));
        getContentPane().add(panel4, BorderLayout.WEST);
    }
    public static void main(String args[]) { new Rahmen_2().setVisible(true);   }

    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == neu) System.out.println("neu");
        if(e.getSource() == laden) System.out.println("laden");
        if(e.getSource() == exit) dispose();
    }
    public JButton neu, laden, exit;
    public JPanel buttonPanel, panel1, panel2, panel3, panel4;
    public Color bgColor;
}
 

sliwalker

Top Contributor
@Andre_Uhres:
Kannst Du mir sagen warum du die Konstante EXIT_ON_CLOSE über WindowConstants aufgerufen hast (kenne ich gar nicht).
Habs lange mit this.EXIT_ON_CLOSE aufgerufen, bis ich hier im Forum mal gelesen habe, dass man es Konstant aufrufen soll. Seither nehme ich JFrame.EXIT_ON_CLOSE.
Wär nett wenn Du mir erklärst warum ;)
 

André Uhres

Top Contributor
JFrame, JInternalFrame, und JDialog benutzen die WindowConstants.
Es dürfte also ziemlich schnuppe sein ob man die Konstanten von WindowConstants
direkt nimmt oder über den Umweg von JFrame/JInternalFrame/JDialog.
Ich liebe halt den direkten Weg.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Button / Design Ideen AWT, Swing, JavaFX & SWT 2
M JavaFX kann man da noch was am code vereinfachen design technisch sieht nicht richtig aus... AWT, Swing, JavaFX & SWT 15
R Swing Design des oberen Balkens in JFrame AWT, Swing, JavaFX & SWT 2
L JavaFX GUI Design AWT, Swing, JavaFX & SWT 6
W WindowBuilder / Design-Vorschau schneidet den Rand ab AWT, Swing, JavaFX & SWT 0
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
SchmidiMC Swing Vorschläge für ein Design AWT, Swing, JavaFX & SWT 5
das_leon AWT Button Design ändern AWT, Swing, JavaFX & SWT 5
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
F Design-Anzeige im Windowbuilder AWT, Swing, JavaFX & SWT 3
K GridBagLayout mit reponsive Design AWT, Swing, JavaFX & SWT 2
B Design Umsetzung AWT, Swing, JavaFX & SWT 1
M Swing JComboBox eigenes Design AWT, Swing, JavaFX & SWT 3
L LookAndFeel Eigenes Design für die Applikation AWT, Swing, JavaFX & SWT 4
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
T JavaFX "DefaultButton"-Design ändern AWT, Swing, JavaFX & SWT 8
T JavaFX Flexible Layouts dynamisch erstellen / Design-Inspirationen AWT, Swing, JavaFX & SWT 8
T Programm im METRO Design? AWT, Swing, JavaFX & SWT 1
N GUI Design ohne GUIDesigner AWT, Swing, JavaFX & SWT 10
D GWT Design AWT, Swing, JavaFX & SWT 0
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
U WindowBuilder "Design-Tab" AWT, Swing, JavaFX & SWT 2
P LayoutManager Design meines Projekts (hätte wer zeit?) AWT, Swing, JavaFX & SWT 9
G Eclipse: Design Tab wird nicht mehr angezeigt AWT, Swing, JavaFX & SWT 4
M Design in Java umsetzen AWT, Swing, JavaFX & SWT 3
Tsuna JButtons in Apple-Design AWT, Swing, JavaFX & SWT 4
ARadauer Wenig Material zum Thema: Design, Layout, Usability von Swing Anwendungen AWT, Swing, JavaFX & SWT 11
J LayoutManager Welchen Layout/Design-Manager? AWT, Swing, JavaFX & SWT 4
W LayoutManager Clientfenster ins Design einbinden AWT, Swing, JavaFX & SWT 13
B LayoutManager GUI-Design: eventuelle Alternativen zum Verschachteln + Ansprechen von JPanel()? AWT, Swing, JavaFX & SWT 2
F JSlider Design ändern AWT, Swing, JavaFX & SWT 6
D Repaint Frage, Design Frage AWT, Swing, JavaFX & SWT 2
G Grundsatzfrage GUI-Design AWT, Swing, JavaFX & SWT 6
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
tuttle64 Design für mehrere Sprachen in Swing AWT, Swing, JavaFX & SWT 15
L Eigene Design Oberfläche erstellen AWT, Swing, JavaFX & SWT 3
M Special design of Swing components AWT, Swing, JavaFX & SWT 14
KrokoDiehl Swing Design-Frage: eigenes Line-Wrapping AWT, Swing, JavaFX & SWT 5
T Design mit vielen Feldern AWT, Swing, JavaFX & SWT 2
D Design - View & Controller AWT, Swing, JavaFX & SWT 2
eskimo328 Moderne Swing GUI mit Web ähnlichem Design AWT, Swing, JavaFX & SWT 7
M Nochmal Swing, MVC und generelles Design AWT, Swing, JavaFX & SWT 2
S JTree Design Problem AWT, Swing, JavaFX & SWT 5
S Design problem AWT, Swing, JavaFX & SWT 2
K Design von verschiedenen Rechnern AWT, Swing, JavaFX & SWT 13
A Design Problem bei verschiedenen Oberflächen AWT, Swing, JavaFX & SWT 3
Steev Standard Design bei JFrame und AWT AWT, Swing, JavaFX & SWT 7
M Design von Elemente? AWT, Swing, JavaFX & SWT 16
T Allgemeine Frage - innovatives GUI Design AWT, Swing, JavaFX & SWT 6
P Swing-Komponenten - Standart-Windows Design? AWT, Swing, JavaFX & SWT 4
B Swing - Design Patterns AWT, Swing, JavaFX & SWT 3
S "Zerstörtes" gbl-Layout (Design) AWT, Swing, JavaFX & SWT 10
D professionelles GUI-Design als Skeleton Pro AWT, Swing, JavaFX & SWT 2
A Applikation mit Netbeans-Design AWT, Swing, JavaFX & SWT 4
R JDialog hat seltsames Design AWT, Swing, JavaFX & SWT 6
M Look&Feel - Layout - GUI - Design - SAP LnF :) AWT, Swing, JavaFX & SWT 12
M Frage bzgl. Formular-Design. AWT, Swing, JavaFX & SWT 2
R Programm an Design anpassen. AWT, Swing, JavaFX & SWT 4
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen


Oben