2

年 以下にコード、プログラムのスクリーンショット、およびタブをどのように表示したいかの図を添付しました。JPanel textPanel がタブ LLP の JButtons の下に表示されるようにする必要があります。textPanel を tabsPanel に追加しようとしましたが、そうするとタブが消えてしまいます。画面全体に伸び、LLP タブの下の空白スペースを埋めるには、textPanel が必要です。しかし、textPanel を他のタブに表示したくありません。表示されている最初の図は、古いプログラムの外観です。ゼロから始めて、より良いプログラムを作るように言われました。画面に入出力ログが表示されません。しかし、ご覧のとおり、ポート設定オプションで選択した内容が表示されます。プログラムのスクリーンショット描く

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.TextArea;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;


public class TestApplication implements ActionListener {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(1000, 1000);
        frame.setTitle("RBA Test Application");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

        JLabel logLabel = new JLabel("Input/Output Log");

        JButton initialize = new JButton("Initialize");
        JButton connect = new JButton("Connect");
        JButton disconnect = new JButton("Disconnect");
        JButton shutdown = new JButton("Shut Down");
        JButton portsettings = new JButton("Port Settings");
        JButton online = new JButton("Go Online");
        JButton offline = new JButton("Go Offline");
        JButton status = new JButton("Status");
        JButton reboot = new JButton("Reboot");
        JButton account = new JButton("Account");
        JButton amount = new JButton("Amount");
        JButton reset = new JButton("Reset");
        JButton apprvordecl = new JButton("Apprv/Decl");
        JButton test = new JButton("Test Button #1");
        JButton testing = new JButton("Test Button #2");
        JRadioButton button = new JRadioButton("Radio Button");
        JRadioButton button2 = new JRadioButton("Radio Button");
        JCheckBox checkbox = new JCheckBox("Check Box");
        JCheckBox checkbox2 = new JCheckBox("Check Box");

        JPanel testPanel = new JPanel();
         testPanel.add(button);
         testPanel.add(button2);
         testPanel.add(checkbox2);

    JPanel posPanel = new JPanel();
    posPanel.add(test);
    posPanel.add(testing);
    posPanel.add(checkbox);

    JPanel llpPanel = new JPanel();
    llpPanel.add(online);
    llpPanel.add(offline);
    llpPanel.add(status);
    llpPanel.add(reboot);
    llpPanel.add(account);
    llpPanel.add(amount);
    llpPanel.add(reset);
    llpPanel.add(apprvordecl);

    JPanel textPanel = new JPanel(new BorderLayout());
    textPanel.add(logLabel);
    frame.add(logLabel); 

    JPanel buttonPanel = new JPanel();
    buttonPanel.add(initialize);
    buttonPanel.add(connect);
    buttonPanel.add(disconnect);
    buttonPanel.add(shutdown);
    buttonPanel.add(portsettings);
    frame.add(buttonPanel);
    frame.add(buttonPanel, BorderLayout.NORTH);

    JTabbedPane tabbedPane = new JTabbedPane();
    tabbedPane.addTab("LLP", null, llpPanel, "Low Level Protocol");
    tabbedPane.addTab("POS",null, posPanel, "Point Of Sale");
    tabbedPane.addTab("Test", null, testPanel, "Test");

    JPanel tabsPanel = new JPanel(new BorderLayout());
    tabsPanel.add(tabbedPane);
    frame.add(tabsPanel, BorderLayout.CENTER);


    frame.pack();



}

@Override
public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

}






}
4

3 に答える 3

0

http://docs.oracle.com/javase/tutorial/uiswing/layout/using.htmlをご覧ください。

必要に応じて適切な LayoutManager を設定する必要があります。そうしないと、おそらく適合しないデフォルトの LayoutManager が使用されます。

于 2013-05-22T18:55:46.950 に答える
0

別のネストされたパネルが必要な場合は、これを試してください:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;


public class TestApplication implements ActionListener {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
    frame.setSize(1000, 1000);
    frame.setTitle("RBA Test Application");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    JLabel logLabel = new JLabel("Input/Output Log");

    JButton initialize = new JButton("Initialize");
    JButton connect = new JButton("Connect");
    JButton disconnect = new JButton("Disconnect");
    JButton shutdown = new JButton("Shut Down");
    JButton portsettings = new JButton("Port Settings");
    JButton online = new JButton("Go Online");
    JButton offline = new JButton("Go Offline");
    JButton status = new JButton("Status");
    JButton reboot = new JButton("Reboot");
    JButton account = new JButton("Account");
    JButton amount = new JButton("Amount");
    JButton reset = new JButton("Reset");
    JButton apprvordecl = new JButton("Apprv/Decl");
    JButton test = new JButton("Test Button #1");
    JButton testing = new JButton("Test Button #2");
    JRadioButton button = new JRadioButton("Radio Button");
    JRadioButton button2 = new JRadioButton("Radio Button");
    JCheckBox checkbox = new JCheckBox("Check Box");
    JCheckBox checkbox2 = new JCheckBox("Check Box");

    JPanel testPanel = new JPanel();
     testPanel.add(button);
     testPanel.add(button2);
     testPanel.add(checkbox2);

JPanel posPanel = new JPanel();
posPanel.add(test);
posPanel.add(testing);
posPanel.add(checkbox);

//CHANGED PART
JPanel llpPanel = new JPanel(new BorderLayout());
JPanel llpbuttonPanel = new JPanel();
llpbuttonPanel.add(online);
llpbuttonPanel.add(offline);
llpbuttonPanel.add(status);
llpbuttonPanel.add(reboot);
llpbuttonPanel.add(account);
llpbuttonPanel.add(amount);
llpbuttonPanel.add(reset);
llpbuttonPanel.add(apprvordecl);
llpPanel.add(llpbuttonPanel, BorderLayout.NORTH);

JPanel textPanel = new JPanel(new BorderLayout());
textPanel.add(logLabel);
llpPanel.add(textPanel, BorderLayout.CENTER);
//END CHANGED PART

JPanel buttonPanel = new JPanel();
buttonPanel.add(initialize);
buttonPanel.add(connect);
buttonPanel.add(disconnect);
buttonPanel.add(shutdown);
buttonPanel.add(portsettings);
frame.add(buttonPanel);
frame.add(buttonPanel, BorderLayout.NORTH);

JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("LLP", null, llpPanel, "Low Level Protocol");
tabbedPane.addTab("POS",null, posPanel, "Point Of Sale");
tabbedPane.addTab("Test", null, testPanel, "Test");

JPanel tabsPanel = new JPanel(new BorderLayout());
tabsPanel.add(tabbedPane);
frame.add(tabsPanel, BorderLayout.CENTER);


frame.pack();



}

@Override
public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

}






}

正しいテキスト領域を配置するには: (別の方法でテキスト領域を作成して参照する必要があります)

    //BEGIN CHANGE
JPanel llpPanel = new JPanel(new BorderLayout());
JPanel llpbuttonPanel = new JPanel();
llpbuttonPanel.add(online);
llpbuttonPanel.add(offline);
llpbuttonPanel.add(status);
llpbuttonPanel.add(reboot);
llpbuttonPanel.add(account);
llpbuttonPanel.add(amount);
llpbuttonPanel.add(reset);
llpbuttonPanel.add(apprvordecl);
llpPanel.add(llpbuttonPanel, BorderLayout.NORTH);

JPanel textPanel = new JPanel(new BorderLayout());
textPanel.add(logLabel, BorderLayout.NORTH);

JTextArea area = new JTextArea();
textPanel.add(area, BorderLayout.CENTER);
llpPanel.add(textPanel, BorderLayout.CENTER);

//END CHANGE
于 2013-05-22T18:56:16.417 に答える