Wie lege ich die Breite, Höhe, um einen Jframe?

Hallo, ich versuche, es so zu machen meine getwidth und getheight automatisch asigned von meiner Jframe

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import javax.swing.JComponent;
import java.awt.GradientPaint;
import java.awt.Polygon;
import java.awt.*;

/*
   component that draws the concert background
*/
public class Concertbackground
{  
    public void draw(Graphics g)
    {   
        //Recover Graphics2D 
        Graphics2D g2 = (Graphics2D) g;    
        //Background Top
        g2.setColor(Color.BLUE);
        Rectangle backgroundTop = new Rectangle (0, 0, getWidth(), getHeight() / 2); 
        g2.fill(backgroundTop);    
        //Background bottom
        g2.setColor(Color.GREEN);
        Rectangle backgroundBottom = new Rectangle (0, getHeight() / 2, getWidth(), getHeight() / 2); 
        g2.fill(backgroundBottom);
    }    
}

JFrame Teil

import javax.swing.JFrame;
import java.awt.BorderLayout;

public class Concert
{
   public static void main(String[] args)
   {
      JFrame frame = new JFrame();
      frame.setSize(1000, 800);
      frame.setTitle("Concert!");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
      ConcertComponent component = new ConcertComponent();
      frame.add(component);    
      frame.setVisible(true);
   }       
}

Teil, der tatsächlich zieht die Klassen, die ich erstellen

import java.awt.Graphics;
import javax.swing.JComponent;


public class ConcertComponent
{
    public void paintComponent(Graphics g)
    {
        ConcertSpeaker speaker1 = new ConcertSpeaker(400, 300);
        speaker1.draw(g);    
        ConcertSpeaker speaker2 = new ConcertSpeaker(0, 0);
        speaker2.draw(g);          
      Concertbackground background1 = new Concertbackground();
      background1.draw(g);           
    }    
}

Wenn ich mich unklar, im Grunde möchte ich meine getheight und getwidth gleich die Jframe-Größe regaurdless, was Ihr eingestellt oder geändert werden, um

  • getHeight und getWidth Gegenzug die aktuellen Dimensionen des JFrame aktuell. Was meinst du genau?
  • frame.setSize(1000, 800); dies in der Tat setzt Breite und Höhe
  • Bla gemeint, nicht den Teil, wo seine public class ConcertComponent nicht erstreckt JComponent oder ist es egal?
  • okay nvm auf das Teil, jetzt bin ich verwirrt, warum Sie nicht tatsächlich ziehen mein hintergrund Komponente?
  • Keiner der code Sinn macht. Keine der Klassen erstrecken sich von einer lackierfähig Elternteil, so etwas kann gemalt werden, noch kann Ihre ConcreteComponent Hinzugefügt werden, um jede Art von Behälter
InformationsquelleAutor user2945880 | 2013-11-05
Schreibe einen Kommentar