2017-03-08 1 views
0

Ich habe gerade angefangen mit Java zu arbeiten. Ich habe keine Probleme mit dem Erstellen von Fenstern, Schaltflächen und Grafiken. Aber ich kann Fenster mit vielen Tasten, Grafiken und Textfeldern nicht machen. Wenn ich Schaltflächen zu meinem Fenster hinzufüge, sehe ich keine Grafiken. Wie kann ich es tun?Java (Button + Grafik)

Code:

package today; 

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.geom.Ellipse2D; 
import java.awt.geom.*; 
import java.awt.event.*; 
import java.awt.Graphics; 

public class mybuttonapp extends JFrame 
{ 



    private mybuttonapp() 
    { 
    } 



    public static void main(String[] args) 
    { 
     // TODO Auto-generated method stub 
     //new mybuttonapp().setVisible(true); 

     //-- 

     JFrame f=new JFrame("Button Example"); 
     f.setVisible(true); 
     f.setSize(900, 600); 
     //f.setLayout(null); 
     f.setDefaultCloseOperation(EXIT_ON_CLOSE); 

     JPanel p1 = new JPanel(); 
     p1.setBackground(Color.GREEN); 
     p1.setPreferredSize(new Dimension (100,100)); 
     p1.setVisible(true); 
     f.add(p1); 


     My2d paint1 = new My2d(); 



     JButton b1=new JButton("Click Here"); 
     b1.setBounds(10,10,100,50); 


     p1.add(b1); 
     p1.add(paint1); 
     } 

code 2: 

package today; 

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.geom.Ellipse2D; 
import java.awt.geom.*; 
import java.awt.event.*; 

public class My2d extends JComponent 

{ 
     public void paint (Graphics g) 
     { 

      Graphics2D g2 = (Graphics2D) g; 

      Ellipse2D.Double circle = new Ellipse2D.Double(300,300,50,50); 
      g2.fill(circle); 

      } 

} 

Antwort

0

Sie müssen überprüfen, wie LayoutManagers in Java arbeiten. Sie helfen Ihnen, die Elemente in Ihrem Container (JFrame/JPanel) an die richtige Stelle zu setzen. https://docs.oracle.com/javase/tutorial/uiswing/layout/layoutlist.html

Normalerweise arbeite ich mit einer Kombination aus BorderLayout und GridBagLayout, da es sehr flexibel ist - aber viele Nutzer fühlen GridBagLayout zu kompliziert ist, vor allem für Anfänger.