Fenster maximieren

stoi

Mitglied
Hallo,

ich habe in einer Textdatei "Globale Einstellungen".
Bei Programmstart lese ich diese aus, und somit lässt sich zum Beispiel die Fenstergröße anpassen.
Um das Programm maximiert starten zu lassen, habe ich folgendes geschrieben.

Java:
        if (Methoden.lix == 0 && Methoden.liy == 0){
        	setExtendedState(JFrame.MAXIMIZED_BOTH);
        }
        if (Methoden.lix > 0 && Methoden.liy > 0){
        	chartPanel.setPreferredSize(new java.awt.Dimension(Methoden.lix, Methoden.liy));
        }

also die Werte sind 0, aber irgendwie startet das Fenster nicht maximiert.

Ich hoffe ihr könnt mir helfen.

Viele Grüße
Stoi
 
Aus der API Doc:
http://docs.oracle.com/javase/6/docs/api/java/awt/Frame.html#setExtendedState(int) hat gesagt.:
Note that if the state is not supported on a given platform, nothing will happen. The application may determine if a specific state is available via the java.awt.Toolkit#isFrameStateSupported(int state) method.

Und ich frage lieber auch noch einmal, die Werte sind wirklich beide 0 (auch im Programm an dieser Stelle? 😀) ?
 
hehe, ja also ich hab mit nem System.out.println() mir alles anzeigen lasse,
sind 0 ^^

aber ich habe kein extends JFrame, sondern extends Application ^^
kann das der Grund sein?
 
Zuletzt bearbeitet:
Der Sourcecode wäre ein bisschen viel,
aber auf jeden Fall funktioniert es so bei mir nicht,
es liegt 100% daran, weil ich nicht extends JFrame habe.
Kann man das noch irgendwie anders lösen?

Java:
public class GUI extends ApplicationFrame {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	final static String DB4OFILENAME = System.getProperty("user.home")
            + "/formula1.db4o";
     static ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded
              .newConfiguration(), DB4OFILENAME);
	/**
     * Creates a new demo.
     *
     * @param title  the frame title.
     */
    public GUI(final String title) {
        super(title);
        setTitle("Anwendung");
        final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setVisible(true);
        
        
        JMenu mnDiagramm = new JMenu("Diagramm");
        menuBar.add(mnDiagramm);
       
        
        JMenuItem mntmNewMenuItem_3 = new JMenuItem("Globale Einstellungen");
        mntmNewMenuItem_3.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent arg0) {
        		GlobaleEinstellungen asd = new GlobaleEinstellungen();
        		asd.setLocationRelativeTo(chartPanel);
        		asd.setVisible(true);
        		asd.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        	}
        });
        mnNewMenu_1.add(mntmNewMenuItem_3);
        
        JMenu mnAnsicht = new JMenu("Ansicht");
        mnNewMenu_1.add(mnAnsicht);
        
        JMenuItem mntmLiniendiagramm = new JMenuItem("Liniendiagramm");
        mntmLiniendiagramm.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent arg0) {

        		
        	}
        });
        mnAnsicht.add(mntmLiniendiagramm);
        
        JMenuItem mntmBalkendiagramm = new JMenuItem("Balkendiagramm");
        mntmBalkendiagramm.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent arg0) {
        		try{
        			db.close();
        		}
        		finally{
        			
        		}
        		setVisible(false);
                final Balkendiagramm demo2 = new Balkendiagramm("Bar Chart Demo 3");
                demo2.pack();
                RefineryUtilities.centerFrameOnScreen(demo2);
                demo2.setVisible(true);
        	}
        });
        mnAnsicht.add(mntmBalkendiagramm);
        
        mnNewMenu_2.add(mntmNewMenuItem_5);
        if (Methoden.lix == 0 && Methoden.liy == 0){
        	setExtendedState(JFrame.MAXIMIZED_BOTH);
        }
        if (Methoden.lix > 0 && Methoden.liy > 0){
        	chartPanel.setPreferredSize(new java.awt.Dimension(Methoden.lix, Methoden.liy));
        }
        
        setContentPane(chartPanel);
        chartPanel.setLayout(new BorderLayout(0, 0));
    }

         
        
    }

Ist stark verkürzt
 
ApplicationFrame aus der JCommon API erbt von JFrame, ist also selbst auch ein JFrame. Bei mir klappt das damit genauso gut. Wie aber bereits in der API beschrieben muss es nicht klappen!

Probieren könntest du aber mal dein Code etwas aufzuräumen. Das setVisible beim Panel brauchst du nicht, es fehlt aber in dem Code ein setVisible für den Frame! Des Weiteren würde ich setVisible erst ganz am Ende aufrufen, vorher das Chartpanel hinzufügen und dann maximieren.

Java:
import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.VerticalAlignment;

public class GUI extends ApplicationFrame {

	private static final long serialVersionUID = 1L;

	public GUI(final String title) {
		super(title);
		setTitle("Anwendung");
        final double[][] data = new double[][] {
            {1.0, 4.0, 3.0, 5.0, 5.0, 7.0, 7.0, 8.0},
            {5.0, 7.0, 6.0, 8.0, 4.0, 4.0, 2.0, 1.0},
            {4.0, 3.0, 2.0, 3.0, 6.0, 3.0, 4.0, 3.0}
        };
        final CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
            "Series ", "Type ", data
        );
		final JFreeChart chart = createChart(dataset);
		final ChartPanel chartPanel = new ChartPanel(chart);
		setContentPane(chartPanel);
		setExtendedState(JFrame.MAXIMIZED_BOTH);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new GUI("Hallo JFreeChart");
	}

	 private JFreeChart createChart(final CategoryDataset dataset) {
         
	        final JFreeChart chart = ChartFactory.createAreaChart(
	            "Area Chart",             
	            "Category",               
	            "Value",                  
	            dataset,                  
	            PlotOrientation.VERTICAL, 
	            true,                     
	            true,                     
	            false                    
	        );
	 
	        chart.setBackgroundPaint(Color.white);
	        final TextTitle subtitle = new TextTitle("An area chart demonstration.  We use this "
	            + "subtitle as an example of what happens when you get a really long title or "
	            + "subtitle.");
	        subtitle.setFont(new Font("SansSerif", Font.PLAIN, 12));
	        subtitle.setPosition(RectangleEdge.TOP);
	        subtitle.setVerticalAlignment(VerticalAlignment.BOTTOM);
	        chart.addSubtitle(subtitle);
	        final CategoryPlot plot = chart.getCategoryPlot();
	        plot.setForegroundAlpha(0.5f);
	        plot.setBackgroundPaint(Color.lightGray);
	        plot.setDomainGridlinesVisible(true);
	        plot.setDomainGridlinePaint(Color.white);
	        plot.setRangeGridlinesVisible(true);
	        plot.setRangeGridlinePaint(Color.white);
	        
	        final CategoryAxis domainAxis = plot.getDomainAxis();
	        domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
	        domainAxis.setLowerMargin(0.0);
	        domainAxis.setUpperMargin(0.0);
	        domainAxis.addCategoryLabelToolTip("Type 1", "The first type.");
	        domainAxis.addCategoryLabelToolTip("Type 2", "The second type.");
	        domainAxis.addCategoryLabelToolTip("Type 3", "The third type.");
	        
	        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
	        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
	        rangeAxis.setLabelAngle(0 * Math.PI / 2.0);
	        
	        return chart;
	    }
}

Wie sieht es mit diesem Beispiel aus? Funktioniert?
 

Neue Themen


Zurück
Oben