2012-06-09 16 views

cevap

9

Absolute Positioning Tutorials. Bu yaklaşım Jpanel bir JButton söylemek eklemek için

LayoutManagers kullanılmasına göre önerilmez neden olarak, dikkatle okuyunuz Lütfen, bu kullanabilirsiniz:

import java.awt.*; 
import javax.swing.*; 

public class AbsoluteLayoutExample 
{ 
    private void displayGUI() 
    { 
     JFrame frame = new JFrame("Absolute Layout Example"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel contentPane = new JPanel(); 
     contentPane.setOpaque(true); 
     contentPane.setBackground(Color.WHITE); 
     contentPane.setLayout(null); 

     JLabel label = new JLabel(
      "This JPanel uses Absolute Positioning" 
            , JLabel.CENTER); 
     label.setSize(300, 30); 
     label.setLocation(5, 5); 

     JButton button = new JButton("USELESS"); 
     button.setSize(100, 30); 
     button.setLocation(95, 45); 

     contentPane.add(label); 
     contentPane.add(button); 

     frame.setContentPane(contentPane); 
     frame.setSize(310, 125); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String... args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       new AbsoluteLayoutExample().displayGUI(); 
      } 
     }); 
    } 
} 
: Burada
JButton button = new JButton("Click Me"); 
button.setBounds(5, 5, 50, 30); 
panel.add(button); 

bu örnek programı deneyin Bu mutlak düzen kod örneği üzerinden

Absolute Positioning Output

+0

için ne iyi bir araçtır? Bu "bölme" nedir? yerine JPanel kullanabilir miyim? – whiteberryapps

+0

Bu işe yaramıyor ... – whiteberryapps

+0

@ user1441845: Bu son kurguyu izleyelim, 'JPanel' ile nasıl kullanabileceğinizi :-) :-) Daha önce söylemeyi unuttum, panel.setLayout (null) yazmanız gerekiyor ', bu kod örneğinde, AbsoluteLayout için şimdi :-) –

2

Kontrol:

senin bileşeninde

setLayout(null); 

: çerçevesini miras sınıfta 0

Absolute Layout demo

+0

+ 1, bu öğretici başka bir yerde görmüştüm, sadece nerede :-) –

2

setLocation(x,y); 
+0

çalışmıyor hatırlayamıyorum ... – whiteberryapps

+0

+1, güzel ipucu :-) –

+0

Endişeler: 1) JFrame'in contentPane'inin düzenini, JFrame'in kendisini değil, ayarlamanız gerekir. 2) Konteynerin düzeni boşsa, kodlayıcı hem eklenen konumun hem * hem de * büyüklüğünden sorumludur. 3) Boş düzeni ve mutlak konumlandırmayı kullanmaktan kaçınmak için bir uyarı eklemelisiniz. –

3

birbirleri ile kombinasyon halinde ... bu 2 dene ...

setLocation() ve setBounds()

NetBeans ekibi tarafından 2005 yılında geliştirilen GroupLayout kullanmak daha da iyi. WindowsBuilder Pro java

+0

+1, GroupLayout'u kavramak isterdim, şüphesiz –

+1

@nIcEcOw: NetBeans GUI düzenleyicide tinkering ve oluşturulan kodun incelenmesi GroupLayout ile deneme yolu. – trashgod

+0

@trashgod: İlginç bir fikir, IDE üzerinde sürükle/bırak, alışılmış şekilde kodla deneme ve oynama. Bu harika bir tavsiye, teşekkürler :-) –

İlgili konular