Fenstergröße per Buttonklick erweitern?

Status
Nicht offen für weitere Antworten.
P

Patrick S.

Gast
Hallo Leute,
ich bin absolut neu hier im Forum und hoffe auf eure Hilfe, natürlich möchte ich auch mit meinem bisherigen Wissensstand weiterhelfen (also geben und nehmen =] ).

Zu meinem Problem, ich beschäftige mich seit einigen Monaten mit Java und habe die Grundlagen nun hintermir gelassen. Ich möchte nun ein einfaches kleines Programm schreiben, dass folgendes macht:

Ich habe auf einem Fenster ein JButton, wenn ich diesen drücke, soll sich das Fenster um eine definierte Größe vergrößern. Klingt eigentlich nicht so schwer, aber da ich aus der VB-Welt komme, fällt mir der Denkansatz nicht gerade leicht.

Hier der gesamte Quellcode (Es wäre auch sehr nett von euch, wenn ich meinen Stiel kritisieren/bewerten würdet, ich möchte mir lieber gleich einen ordentlichen angewöhnen =] ):

Code:
import javax.swing.JFrame;
import java.awt.Container;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class MainCal extends JFrame {
	public static final int WIDTH = 600;
  public static final int HEIGHT = 530;
  private Container pane;
  
  public MainCal(String title){
  	super(title);
  	
  	pane = getContentPane();
  	pane.setLayout(null);
  	
  	JButton btnExtend = new JButton("Eintrag hinzufügen");
//  setBounds(x,y,width,height)
  	btnExtend.setBounds(450,480,140,20);
  	btnExtend.addActionListener(new ExtendPaneListener()); 	
  	
  	pane.add(btnExtend);
  }
 
  //Bautstelle!
	private class ExtendPaneListener implements ActionListener{
		public void actionPerformed (ActionEvent event){
					
		//Hier sollte die Anweisung des Buttonklicks herein 			
  		
  	}
  }
  
  public static void main (String args[]){
  	MainCal theWindow = new MainCal("Patrick`s Kalender");
  	
  	theWindow.setSize(WIDTH,HEIGHT);
  	theWindow.setLocation(100,15);
  	theWindow.setResizable(false);
  	theWindow.setVisible(true);	
  }
	
	
}


Wäre echt super von euch, wenn ihr mir helfen könntet.

Gruß
Patrick
 

The_S

Top Contributor
Größe JFrame ändern:

setSize(width, height);

zum Programm ansich:

Naja, soviel kann man da noch nicht bewerten, außer dass du kein null-Layout verwenden solltest.
 

L-ectron-X

Gesperrter Benutzer
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class SizeTest extends JFrame {
   private JButton larger, smaller;
   private JPanel panel;
   private JLabel label;
   private double factor = 1.2;
   private int width = 400, height = 300;

   public SizeTest(String title) {
      super(title);
      setSize(width, height);
      setLocationRelativeTo(null);
      setResizable(false);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      label = new JLabel(getDimension());
      label.setHorizontalAlignment(SwingConstants.CENTER);
      label.setBorder(new EmptyBorder(new Insets(20, 0, 20, 0)));
      add(label, BorderLayout.CENTER);

      panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
      
      smaller = new JButton("Kleiner");
      smaller.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            setSmaller();
         }
      });
      panel.add(smaller);

      larger = new JButton("Größer");
      larger.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            setLarger();
         }
      });
      panel.add(larger);
      
      add(panel, BorderLayout.SOUTH);
   }
   
   private String getDimension() {
      return String.valueOf(getSize().width)+" x "+String.valueOf(getSize().height);
   }
   
   private void setLarger() {
      width = (int)(getSize().width * factor);
      height = (int)(getSize().height * factor);
      setSize(width, height);
      setLocationRelativeTo(null);
      label.setText(getDimension());
      validate();
   }
   
   private void setSmaller() {
      width = (int)(getSize().width / factor);
      height = (int)(getSize().height / factor);
      setSize(width, height);
      setLocationRelativeTo(null);
      label.setText(getDimension());
      validate();
   }
   
   public static void main(String[] args) {
      new SizeTest("SizeTest").setVisible(true);
   }

}
 

André Uhres

Top Contributor
Code:
//package schnipsel3;
/*
 * MainCal.java
 */
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
public class MainCal extends JFrame {
    private JScrollPane scroller;
    private JTable table;
    private DefaultTableModel model;
    private JPanel btPanel;
    private JButton btnExtend;
    private final int MAX_HEIGHT= (int)Toolkit.getDefaultToolkit()
    .getScreenSize().getHeight()-100;
    private final int ROW_HEIGHT = 50;
    public MainCal(String title){
        super(title);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600, 71);
        setResizable(false);
        setLocationRelativeTo(null);
        scroller = new JScrollPane();
        scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
        table = new JTable(0,1);
        table.setDefaultRenderer(Object.class, new PanelRenderer());
        table.setRowHeight(ROW_HEIGHT);
        table.setTableHeader(null);
        model = (DefaultTableModel)table.getModel();
        scroller.setViewportView(table);
        getContentPane().add(scroller, BorderLayout.CENTER);
        hinzu();
        btnExtend = new JButton("Eintrag hinzufügen");
        btPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        btnExtend.addActionListener(new ExtendPaneListener());
        btPanel.add(btnExtend);
        getContentPane().add(btPanel, BorderLayout.SOUTH);
    }
    public static void main(String args[]){
        new MainCal("Patrick`s Kalender").setVisible(true);
    }
    private class ExtendPaneListener implements ActionListener{
        public void actionPerformed(ActionEvent event){
            hinzu();
        }
    }
    private void hinzu(){
        if(getHeight() < MAX_HEIGHT){
            setResizable(true);
            setSize(getWidth(),getHeight()+ROW_HEIGHT);
            setLocationRelativeTo(null);
            validate();
            setResizable(false);
        }else{
            scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        }
        model.addRow(new JPanel[]{new CalPanel()});
        SwingUtilities.invokeLater(new Runnable(){
            public void run() {
                table.changeSelection(table.getRowCount(),0,false,false);
            }
        });
    }
    private class PanelRenderer implements TableCellRenderer{
        public Component getTableCellRendererComponent(JTable table, Object value,
                boolean isSelected, boolean hasFocus, int row, int column) {
            ((JPanel)value).setBackground(row % 2 != 0 ? null : bgColor );
            return (Component) value;
        }
        private Color bgColor = new Color(164,182,205);
    }
    private class CalPanel extends JPanel{
        public CalPanel(){
        }
    }
}
 
P

Patrick S.

Gast
Hallo,
ich muss echt sagen, ihr seid ja super schnell.
Ihr habt mir genau bei meinem Problem helfen können. Genau das war es!

Vielen dank und eine schöne Woche noch!

Gruß
Patrick
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Erste Schritte Objekte von JFrame der Fenstergröße anpassen Java Basics - Anfänger-Themen 3
C GUI aktualisieren: repaint, validate, Fenstergröße ändern bringt nichts Java Basics - Anfänger-Themen 13
G Feste Fenstergröße? Java Basics - Anfänger-Themen 4
B Fenstergröße variiert bei JDialog.pack()-Aufruf Java Basics - Anfänger-Themen 10
G JFrame AnzeigeProblem bei änderung der Fenstergröße Java Basics - Anfänger-Themen 3
P Fenstergröße Java Basics - Anfänger-Themen 2
G Scalieren eines Bildes, abhängig von der Fenstergröße Java Basics - Anfänger-Themen 10
G Maximale Fenstergröße eines JFrame Java Basics - Anfänger-Themen 4
L Fenstergröße Java Basics - Anfänger-Themen 5
P Fenstergröße ermitteln Java Basics - Anfänger-Themen 7
V Automatische Fenstergröße verändern Java Basics - Anfänger-Themen 4
S fenstergröße und maximiertes fenster/JFrame Java Basics - Anfänger-Themen 10
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
D Mit Buttonklick Farbe der anderen Buttons verändern? Java Basics - Anfänger-Themen 2
B Methoden Per Buttonklick eine Zufallszahl in ein Numberfield geben Java Basics - Anfänger-Themen 2
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
T Bei Buttonklick Aktion starten, nach erneutem Klick beenden Java Basics - Anfänger-Themen 4
B Variable erhöhen per Buttonklick? Java Basics - Anfänger-Themen 7
S ButtonKlick mit JFrame (Netbeans) fragen.. Java Basics - Anfänger-Themen 8
A nur bei gedrücktem buttonklick aus gui wert einlesen Java Basics - Anfänger-Themen 4
A Häufiger buttonklick Java Basics - Anfänger-Themen 29
SheldoN Sound abspielen nach Buttonklick in Applets Java Basics - Anfänger-Themen 17
J neuen jFrame öffnen per buttonklick Java Basics - Anfänger-Themen 3
B Buttonklick zuordnen Java Basics - Anfänger-Themen 2
Z Array Componenten auf Buttonklick nacheinander ausgeben. Java Basics - Anfänger-Themen 10
M Text per Buttonklick in eine Textbox schreiben Java Basics - Anfänger-Themen 9
Q Classe durch Buttonklick im Layout öffnen Java Basics - Anfänger-Themen 4
L Batik (Zoomen auf einen Buttonklick) Java Basics - Anfänger-Themen 3
G Buttonklick -> Aufruf einer Webseite Java Basics - Anfänger-Themen 16
M Exception nach Buttonklick Java Basics - Anfänger-Themen 4
G Sound bei buttonklick abspielen Java Basics - Anfänger-Themen 7
K Neues Fenster per Buttonklick, Texteingabe speichern Java Basics - Anfänger-Themen 9
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
J GroupLayout zur Laufzeit erweitern Java Basics - Anfänger-Themen 1
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
M Ein Programm erweitern, wie? Java Basics - Anfänger-Themen 3
M Array immer wieder um ein Element erweitern Java Basics - Anfänger-Themen 6
S Array Java erweitern Java Basics - Anfänger-Themen 27
I Vererbung Polygon erweitern ? Java Basics - Anfänger-Themen 4
zhermann String erweitern Java Basics - Anfänger-Themen 4
L Java Kenntnisse erweitern... Java Basics - Anfänger-Themen 10
javaerd Wie kann ich Brute Force Methode mit Strings erweitern Java Basics - Anfänger-Themen 1
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
D Datentypen 2 d array erweitern und ins negative gehen. Java Basics - Anfänger-Themen 9
J Listenimplementierung - Wie erweitern? Java Basics - Anfänger-Themen 1
F Erste Schritte If Bedingung in Schleife dynamisch erweitern Java Basics - Anfänger-Themen 4
V Dreidimensionales int Array erweitern/verkleinern Java Basics - Anfänger-Themen 4
A Properties erweitern Java Basics - Anfänger-Themen 2
H Klasse erweitern Java Basics - Anfänger-Themen 20
M Array erweitern ohne Stringbuilder Java Basics - Anfänger-Themen 6
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
HoloYoitsu args-Parameter durchschleifen (Schnittstelle erweitern?) Java Basics - Anfänger-Themen 27
R Polygon erweitern Java Basics - Anfänger-Themen 10
T Vererbung, Konstruktor erweitern Java Basics - Anfänger-Themen 4
E Input/Output Datei immer weiter erweitern Java Basics - Anfänger-Themen 4
L Array um ein Feld erweitern Java Basics - Anfänger-Themen 13
S table erweitern Java Basics - Anfänger-Themen 3
M Array in Methode erweitern und zurückgeben Java Basics - Anfänger-Themen 7
C ImageIcon erweitern Java Basics - Anfänger-Themen 6
L Array erweitern per Methode Java Basics - Anfänger-Themen 5
C OOP Externe Klasse erweitern (ohne Vererbung!!) Java Basics - Anfänger-Themen 8
E Objekt entweder erstellen oder erweitern Java Basics - Anfänger-Themen 4
C xml datei erweitern Java Basics - Anfänger-Themen 3
S Teiler ermittlen - Array erweitern? Java Basics - Anfänger-Themen 14
B EnumSet erweitern ... Java Basics - Anfänger-Themen 25
T array erweitern/flexible ohne collections usw. Java Basics - Anfänger-Themen 3
J Arrays erweitern - Performance vs Speicherverbrauch Java Basics - Anfänger-Themen 6
B Textdateien erweitern Java Basics - Anfänger-Themen 7
V Warum? Klasse erweitern und ausgeben Java Basics - Anfänger-Themen 3
S Welche Klasse erweitern? Java Basics - Anfänger-Themen 4
G Bildbetrachter erweitern Java Basics - Anfänger-Themen 14
G JComboBox um eine Methode erweitern Java Basics - Anfänger-Themen 2
L String erweitern. Java Basics - Anfänger-Themen 2
H 2DArray manuell dynamisch erweitern Java Basics - Anfänger-Themen 7
K Objekte/Klassen erweitern ~ Javascript Prototyp Java Basics - Anfänger-Themen 5
D Heap erweitern Java Basics - Anfänger-Themen 3
A Queue erweitern Java Basics - Anfänger-Themen 13
A classpath zur Laufzeit erweitern Java Basics - Anfänger-Themen 4
T Objekt erweitern Java Basics - Anfänger-Themen 3
G Feld bzw. Arrays erweitern oder zusammenfügen Java Basics - Anfänger-Themen 4
C fenster erweitern durch button Java Basics - Anfänger-Themen 3
M JList Datenstring erweitern und JList aktualisieren Java Basics - Anfänger-Themen 5
G JToolbar dynamisch erweitern Java Basics - Anfänger-Themen 8
G Menüeinträge dynamisch erweitern Java Basics - Anfänger-Themen 2
J Erweitern eines Tree-Pfades? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben