компонент для того, чтобы иметь многоуровневую характеристику в приложении Java? - PullRequest
1 голос
/ 03 февраля 2012

У меня есть Java-приложение, которое имеет форму, пользователь должен заполнить ее, но я хочу использовать многоуровневую технику для заполнения большой формы в виде трех частей, нажав кнопку ОК, и первая часть должна быть невидимой, а вторая часть будетвидимая, третья часть тоже остается невидимой.

Что я должен использовать, jpanel, jLayeredPane или что, и как это сделать с netbeans?

Ответы [ 3 ]

5 голосов
/ 03 февраля 2012

Возможно, вы захотите взглянуть на CardLayout , вот учебник, Как использовать CardLayout.

Другой вариант будет использовать несколько JDialogs.

... и как это сделать с NetBeans?

Если вы имеете в виду использование GUI Builder, я бы посоветовал вам изучать Java вместоизучение IDE:)

2 голосов
/ 03 февраля 2012

Для любого более продвинутого приложения Swing я настоятельно рекомендую использовать Netbeans RCP. У вас есть готовый компонент мастера, который должен удовлетворить ваши потребности: http://platform.netbeans.org/tutorials/nbm-wizard.html

1 голос
/ 03 февраля 2012

Попробуйте свой код:

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

public class Form 
{
    private static void createAndDisplayGUI()
    {
        JFrame frame = new JFrame("Form");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);

        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));

        final JPanel firstPanel = new JPanel();
        firstPanel.setBackground(Color.DARK_GRAY);      
        JLabel label = new JLabel("I AM PANEL FIRST");
        label.setForeground(Color.WHITE);
        firstPanel.add(label);

        final JPanel secondPanel = new JPanel();
        secondPanel.setBackground(Color.YELLOW);        
        label = new JLabel("I AM PANEL SECOND");
        label.setForeground(Color.BLACK);
        secondPanel.add(label);

        final JPanel thirdPanel = new JPanel();
        thirdPanel.setBackground(Color.BLUE);       
        label = new JLabel("I AM PANEL THIRD");
        label.setForeground(Color.WHITE);
        thirdPanel.add(label);

        JButton button = new JButton("NEXT");
        button.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent ae)
            {
                if (firstPanel.isShowing())
                {
                    firstPanel.setVisible(false);
                    secondPanel.setVisible(true);
                }
                else if (secondPanel.isShowing())
                {
                    secondPanel.setVisible(false);
                    thirdPanel.setVisible(true);
                }
            }
        });

        mainPanel.add(firstPanel);
        mainPanel.add(secondPanel);
        mainPanel.add(thirdPanel);
        mainPanel.add(button);

        secondPanel.setVisible(false);
        thirdPanel.setVisible(false);

        frame.setContentPane(mainPanel);        
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String... args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndDisplayGUI();
            }
        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...