2013-06-04 3 views
1

Мой код внизу вместе со скриншотами. Я пытаюсь получить ярлык над JTextField. Однако, когда отображается метка, кнопки на вкладке уходят. Мой вопрос: как получить ярлык над текстовой областью, но с отображением кнопок?Добавление JLabel в JTextArea в JTabbedPane?

код с меткой:

import java.awt.BorderLayout; 
import java.awt.ComponentOrientation; 
import java.awt.Dimension; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.ButtonGroup; 
import javax.swing.JButton; 
import javax.swing.JCheckBox; 
import javax.swing.JComboBox; 
import javax.swing.JDialog; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JFrame; 
import javax.swing.JRadioButton; 
import javax.swing.JScrollPane; 
import javax.swing.JTabbedPane; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 


public class TestApplication implements ActionListener { 

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


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


    JTextArea logbox = new JTextArea() { 
    @Override 
     public java.awt.Dimension getPreferredSize() { 
      return new Dimension(500, 500); 
     }; 
    }; 

    logLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 
    logLabel.setText("Input/Output Log"); 

    logbox.add(logLabel); 



    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 approvordecl = new JButton("Approve/Decline"); 

    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 newButtonPanel = new JPanel() { 
     @Override 
      public java.awt.Dimension getPreferredSize() { 
       return new Dimension(1000, 50); 
      }; 
     }; 

    newButtonPanel.add(online); 
    newButtonPanel.add(offline); 
    newButtonPanel.add(status); 
    newButtonPanel.add(reboot); 
    newButtonPanel.add(account); 
    newButtonPanel.add(amount); 
    newButtonPanel.add(reset); 
    newButtonPanel.add(approvordecl); 


    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.setLayout(new BorderLayout()); 
    llpPanel.add(newButtonPanel); 
    llpPanel.add(new JScrollPane(logbox), BorderLayout.PAGE_END); 
    llpPanel.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 

} 






} 

Скриншот с LABEL:

label

код без этикетки:

import java.awt.BorderLayout; 
import java.awt.ComponentOrientation; 
import java.awt.Dimension; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.ButtonGroup; 
import javax.swing.JButton; 
import javax.swing.JCheckBox; 
import javax.swing.JComboBox; 
import javax.swing.JDialog; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JFrame; 
import javax.swing.JRadioButton; 
import javax.swing.JScrollPane; 
import javax.swing.JTabbedPane; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 


public class TestApplication implements ActionListener { 

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


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

    JTextArea logbox = new JTextArea() { 
    @Override 
     public java.awt.Dimension getPreferredSize() { 
      return new Dimension(500, 500); 
     }; 
    }; 

    logLabel.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N 
    logLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 
    logLabel.setText("Input/Output Log"); 

    logbox.add(logLabel); 


    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 approvordecl = new JButton("Approve/Decline"); 

    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 newButtonPanel = new JPanel() { 
     @Override 
      public java.awt.Dimension getPreferredSize() { 
       return new Dimension(1000, 50); 
      }; 
     }; 

    newButtonPanel.add(online); 
    newButtonPanel.add(offline); 
    newButtonPanel.add(status); 
    newButtonPanel.add(reboot); 
    newButtonPanel.add(account); 
    newButtonPanel.add(amount); 
    newButtonPanel.add(reset); 
    newButtonPanel.add(approvordecl); 


    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.setLayout(new BorderLayout()); 
    llpPanel.add(newButtonPanel); 
    llpPanel.add(new JScrollPane(logbox), BorderLayout.PAGE_END); 

    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 

} 






} 

Скриншот без этикетки:

label

+0

делает дисплей метки на нем тоже? –

+0

Подождите, вы добавляете JLabel в JTextArea? Это верно? Если это правильно, это очень необычно и не рекомендуется. Кроме того, вы устанавливаете предпочтительные размеры слишком многих вещей, что было бы легко увидеть, где это приведет к тому, что компоненты будут сталкиваться друг с другом и покрывать друг друга. –

+0

Да, это то, что я пытаюсь сделать. Я новичок и не знаю, что обычно, а что нет. Я стажер, и я делаю тестовое приложение, поэтому мой «помощник», я думаю, это то, что вы бы назвали, это поможет мне очистить мой код. можете ли вы дать мне какие-либо указания относительно того, что я могу сделать? Я немного смущен, потому что другой парень сказал, что он отлично отображает Windows. –

ответ

2

Добавьте все компоненты llpPanel и в порядке, вы ожидаете увидеть их, сверху вниз:

llpPanel.add(newButtonPanel, BorderLayout.PAGE_START); 
llpPanel.add(logLabel, BorderLayout.CENTER); 
llpPanel.add(new JScrollPane(logbox), BorderLayout.PAGE_END); 
+0

, который сработал !!! Спасибо большое!!! –

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