简体   繁体   English

如何将jlabel文本向左对齐在jpanel中

[英]How to align the jlabel text to left inside the jpanel

I am trying to align the Jlabel to left but i'm failing to do it let me know how can i tackle this problem any suggestions regarding this would be greatly appreciated 我正在尝试将Jlabel向左对齐,但是我没有做到这一点,让我知道如何解决此问题,对此的任何建议将不胜感激

I have attempted with this slice of code yet it is not solving the problem 我已经尝试过这段代码,但是并不能解决问题

   Jlabel=new JLabel("Label text",SwingConstants.LEFT);
   Jlabel.setHorizontalAlignment(SwingConstants.LEFT);  

here is my complete code 这是我完整的代码

import javax.swing.*;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class MyGui1 extends JPanel implements ActionListener {
    /**
     * 
     */
    static JScrollPane jsp;
    protected JPanel panel;
    protected JTextArea textarea;
    static JFrame frame;    
    JLabel Jlabel=null;

    public MyGui1() {
      //to lay out the container's components in a rectangular grid
        super(new GridBagLayout());

        GridBagConstraints c = new GridBagConstraints();
        c.gridwidth = GridBagConstraints.REMAINDER;

        c.fill = GridBagConstraints.HORIZONTAL;

        JButton jbutton=new JButton("button");
        jbutton.setActionCommand("button");
        jbutton.addActionListener(this);
        add(jbutton,c);

        c.gridy=1;
      c.gridwidth = GridBagConstraints.REMAINDER;
        c.fill = GridBagConstraints.BOTH;

        c.weightx = 1.0;
        c.weighty = 1.0;
        setBackground(Color.cyan);
        panel=new JPanel();
        panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));
        jsp=new JScrollPane(panel);

        jsp.setPreferredSize(new Dimension(300,300));

        jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);

        add(jsp, c);
        setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

    }

    public void actionPerformed(ActionEvent evt) {

         if("button".equals(evt.getActionCommand())){
             execute();
         }
    }

   synchronized public void execute(){

            // to remove all the content of panel
            panel.removeAll();
            // to refresh the window

                for(int i=0;i<20 ;i++){


                         Jlabel=new JLabel("Labe1l"+i,SwingConstants.LEFT);

                        // Jlabel.setAlignmentX(CENTER_ALIGNMENT);
                        // Jlabel.setAlignmentY(LEFT_ALIGNMENT);
                         textarea=new JTextArea();
                         textarea.setText("sample text");
                         if(i==2){
                          textarea.setText("sample text........................\nsample text.................. ");
                         }
                       if(i==5){
                          textarea.setText("sample text.\nsample text.sample text.\nsample text. ");
                         }
                     if(i==7){
                          textarea.setText("sample text.\nsample text.sample text.\nsample text sample text..\nsample text.sample text..\nsample text. ");
                         }
                          textarea.append("\n");
                     textarea.setEditable(false);
                        Jlabel.setLayout(new BorderLayout());
                         Jlabel.setHorizontalAlignment(SwingConstants.LEFT);
                       panel.add(Jlabel);

                           // in order to wrap up the data in text area
                           textarea.setLineWrap(true);
                            panel.add(textarea);   
                           Jlabel.setPreferredSize(new Dimension(240,30));
                           javax.swing.SwingUtilities.invokeLater(new Runnable() {
                               public void run() {
                               //    textarea.setPreferredSize(getMinimumSize());
                                //  panel.setPreferredSize(getSize());
                                panel.revalidate();
                                  panel.repaint();
                                   jsp.getVerticalScrollBar().setValue(0);
                                   jsp.validate();

                               }
                           });

                        } 
                    jsp.revalidate();
                    jsp.repaint();
                    frame.repaint();
                        frame.revalidate();


  }
    @SuppressWarnings("static-access")
    private static void createAndShowGUI() {
        //Create and set up the window.
        frame = new JFrame("DesktopSearchEngine");
        frame.setLayout(new BorderLayout());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //adding window listener for exit operation
        frame.addWindowListener( new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                JFrame frame = (JFrame)e.getSource();

                int result = JOptionPane.showConfirmDialog(
                    frame,
                    "Are you sure you want to exit the application?",
                    "Exit Application",
                    JOptionPane.YES_NO_OPTION);

                if (result == JOptionPane.YES_OPTION)
                    {

                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    }
                else if(result==JOptionPane.NO_OPTION){
                    frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
                }
            }
        });
        //Add contents to the window GUI part and to perform all operations
        frame.add(new MyGui1());

        //Display the window.
        frame.pack();
        //to keep the frame visible 
        frame.setVisible(true);

    }

    public static void main(String[] args) {
        //Schedule a job for the event dispatch thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();


            }
        });
    }

    } 

You could wrap the label in JPanel with FlowLayout.LEADING 您可以使用FlowLayout.LEADING将标签包装在JPanel

JPanel wrapper = new JPanel(new FlowLayout(FlowLayout.LEADING,0, 0));
wrapper.add(Jlabel);
panel.add(wrapper);

在此处输入图片说明


Also remember to follow Java naming convention. 还请记住遵循Java命名约定。 variables begin with lower case letters using camel casing: JlabeljLabel 变量使用驼峰大小写以小写字母开头: JlabeljLabel

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM