2015-10-19 1 views
-1

Я хочу добавить ярлыки и кнопки над и под маской границы. Как я могу это сделать? Вот что я сделал:Как можно добавить контейнер для оформления границы?

import java.awt.*; 

import javax.swing.*; 

class homework{ 
    public static void main(String[] args) { 
     JFrame frame= new JFrame("border layout"); 
     frame.setVisible(true); 
     JLabel label=new JLabel("Container of BorderLayout"); 
     JButton button1 = new JButton("NORTH"); 
     JButton button2 = new JButton("SOUTH"); 
     JButton button3 = new JButton("EAST"); 
     JButton button5 = new JButton("CENTER"); 
     JButton button4 = new JButton("WEST"); 
     JPanel panel1=new JPanel(); 
     JPanel panel2=new JPanel(); 

     frame.add(panel2); 
     label.setLayout(new FlowLayout(0)); 
     panel2.add(label); 
     panel1.setLayout(new BorderLayout()); 
     panel1.add(button1,BorderLayout.NORTH); 
     panel1.add(button2,BorderLayout.SOUTH); 
     panel1.add(button3,BorderLayout.EAST); 
     panel1.add(button4,BorderLayout.WEST); 
     panel1.add(button5,BorderLayout.CENTER); 
     frame.add(panel1); 

     frame.pack(); 

    } 
} 
+0

PROTIP: Java и JavaScript - это две разные вещи. –

+0

Ну, в чем проблема с тем, что вы сделали? Что вы хотите? Что значит «сверху и снизу»? Возможно, добавьте способ, которым вы хотите, чтобы это выглядело на картинке? – RealSkeptic

+1

Гнездо несколько JPanels с BorderLayout? –

ответ

1

Над маской границы и ниже, установите новые 2 контейнера (например, JPanel) и сделайте их раскладкой. enter image description here

JPanel panel = new JPanel(); 
    frame.getContentPane().add(panel, BorderLayout.NORTH); 

    JRadioButton rdbtnNewRadioButton = new JRadioButton("New radio button"); 
    panel.add(rdbtnNewRadioButton); 

    JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("New radio button"); 
    panel.add(rdbtnNewRadioButton_1); 

    JPanel panel_1 = new JPanel(); 
    frame.getContentPane().add(panel_1, BorderLayout.SOUTH); 

    JLabel lblNewLabel = new JLabel("New label"); 
    panel_1.add(lblNewLabel); 

    JLabel lblNewLabel_1 = new JLabel("New label"); 
    panel_1.add(lblNewLabel_1); 

добавить что-то подобное, что перед frame.pack(); код.

На самом деле, что вы подразумеваете под сверху и снизу? Вы имеете в виду север и юг? Если это вы должны иметь что-то вроде этого enter image description here , и вы должны написать код так

import java.awt.*; 

    class homework{ 
    public static void main(String[] args) { 
     JFrame frame= new JFrame("border layout"); 
     frame.setVisible(true); 
     JLabel label=new JLabel("Container of BorderLayout"); 
     JButton button3 = new JButton("EAST"); 
     JButton button5 = new JButton("CENTER"); 
     JButton button4 = new JButton("WEST"); 
     JPanel panel1=new JPanel(); 
     JPanel panel2=new JPanel(); 

     frame.getContentPane().add(panel2); 
     label.setLayout(new FlowLayout(0)); 
     panel2.add(label); 
     panel1.setLayout(new BorderLayout()); 
     panel1.add(button3,BorderLayout.EAST); 
     panel1.add(button4,BorderLayout.WEST); 
     panel1.add(button5,BorderLayout.CENTER); 
     frame.getContentPane().add(panel1); 

     JPanel panel = new JPanel(); 
     panel1.add(panel, BorderLayout.NORTH); 

     JLabel lblNewLabel = new JLabel("New label"); 
     panel.add(lblNewLabel); 

     JRadioButton rdbtnNewRadioButton = new JRadioButton("New radio button"); 
     panel.add(rdbtnNewRadioButton); 

     JPanel panel_1 = new JPanel(); 
     panel1.add(panel_1, BorderLayout.SOUTH); 

     JLabel lblNewLabel_1 = new JLabel("New label"); 
     panel_1.add(lblNewLabel_1); 

     JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("New radio button"); 
     panel_1.add(rdbtnNewRadioButton_1); 

     frame.pack(); 

    } 
} 

В двух условиях необходимо добавить два контейнера в код и сделать их поток макет.

Смежные вопросы