2017-03-08 14 views
0

私はちょうどJavaで作業を始めました。 ウィンドウ、ボタン、グラフィックスの作成に問題はありません。 しかし、私は多くのボタン、グラフィックス、テキストボックスでウィンドウを作ることはできません。 ウィンドウにボタンを追加すると、グラフィックスが表示されません。 どうすればいいですか?Java(ボタン+グラフィックス)

コード:

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); 

      } 

} 

答えて

0

私は何を見てみたいことは、スイング中にレイアウトされていると思います。あなたが尋ねるものを手に入れたら、何をしているのかは、あなたが最初に設定したものを上書きしています。

https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html このリンクは、すべてのスイングレイアウトの説明を提供します。

0

LayoutManagerがJavaでどのように動作するかを確認する必要があります。彼らはあなたのコンテナ(JFrame/JPanel)内の適切な場所に要素を配置するのに役立ちます。 https://docs.oracle.com/javase/tutorial/uiswing/layout/layoutlist.html

通常、それは非常に柔軟であるので、私は、BorderLayoutGridBagLayoutの組み合わせで動作する - しかし、多くのユーザーがGridBagLayoutは、特に初心者のために、複雑すぎる感じ。

関連する問題