2016-03-25 11 views
0

Jlabel ve 3 radyo düğmeleriyle dolu bir boxlayout'u azalan sırada yapmaya çalışıyorum. Program iyi derler ama sonra BoxLayout hatası ile hatalar paylaşılamaz. Bu hatanın “jframe” e takılmaya çalıştıklarını söyleyen insanlar olduğunu gördüm, ama bu durumda, bir çerçeve değil, düzenin verildiği jpanel. Bu, pencereyi derleyen kod segmentidir.java.awt.AWTERROR BoxLayout Oluştururken

JPanel mainPanel = new JPanel(); 
    mainPanel.setLayout(new BorderLayout()); 
    JPanel effortButtons = new JPanel(); 
    JPanel skillButtons = new JPanel(); 
    effortButtons.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); 
    skillButtons.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); 
    effortButtons.add(effortHeader);//this is what gives the error 
    effortButtons.add(oneEffort); 
    effortButtons.add(twoEffort); 
    effortButtons.add(threeEffort); 
    skillButtons.add(skillHeader); 
    skillButtons.add(oneSkill); 
    skillButtons.add(twoSkill); 
    skillButtons.add(threeSkill); 
    mainPanel.add(effortButtons, BorderLayout.WEST); 
    mainPanel.add(skillButtons, BorderLayout.EAST); 
    mainPanel.add(studentName, BorderLayout.NORTH); 
    mainPanel.add(next, BorderLayout.SOUTH); 
    add(mainPanel); 
    pack(); 
+0

Olası kopyası [BoxLayout, paylaşılamadı hatası] (http://stackoverflow.com/questions/761341/boxlayout-cant-be-shared-error) – TheMirrox

cevap

3
// xxxxxxxxxxxxx       xxxxxxxxx 
    effortButtons.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); 

Sen BoxLayout yapıcı içine düzeni oluyor bileşeni geçmek zorunda. Bizim diğer Jpanel için Keza

effortButtons.setLayout(new BoxLayout(efforButtons, BoxLayout.Y_AXIS)); 

- olarak değiştirin: Yani bu olmalı BoxLayout API Başına

skillButtons.setLayout(new BoxLayout(skillButtons, BoxLayout.Y_AXIS)); 

:

public BoxLayout(Container target, int axis)
hedefi - konteyner

tarihinde ortaya konması gerekiyor 10
+0

Gerçekten de, İlk seçenek, onu bağlamak istediğim paneldi. Bu boxlayout, borderlayout'u kullanan ana panele yerleştirilebilmelidir. Bu hala geçerli mi? – TheDoctorHax

+0

@TheDoctorHax: "hiçbir şey ifade etmediği için" bağlamak istediğimi "tanımlayın. BoxLayout, düzeni alan bileşen için bir başvuru gerektirir. Denemek. –

+0

@TheDoctorHax: cevaba göre düzenleme konusuna bakın. API özellikle, parametrenin, yerleştirilmesi gereken kapsayıcı olması gerektiğini söyler. –

İlgili konular