2014-04-11 69 views
0

我想對齊JLabel以左但我沒能做到這一點,讓我知道我可以解決這個問題,這方面的任何建議中,將不勝感激如何對齊JLabel的文本到左的JPanel

我試圖用這個片的代碼,但它不解決問題

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

這裏是我完整的代碼

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(); 


      } 
     }); 
    } 

    } 
+0

提供GUI圖形的ASCII藝術(或帶有簡單圖形的圖像),因爲它應該以最小尺寸和(如果可調整大小)以額外的寬度/高度出現。 –

+0

'JLabel Jlabel'使用Java命名約定 - 'JLabel jLabel'。變量以大寫字母開頭,使用駱駝套。 –

回答

2

你可以包裝的標籤,JPanelFlowLayout.LEADING

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

enter image description here


還記得遵循Java的命名約定。變量以小寫字母開頭,使用駱駝外殼:JlabeljLabel