2012-12-07 134 views
0

嗨我想创建一个由JComboBox和JTextField组成的接口。我已经整理出了将代码添加到JComboBox的代码,但是我无法在文本字段中添加标签。任何帮助,将不胜感激。将标签添加到文本字段

import javax.swing. *; 
    import java.awt.event. *; 
    import java.awt.FlowLayout; 
    import java.lang.Math; 

    public class AreaFrame3 extends JFrame 
    { 

     public static void main(``String[]args) 

     { 

      //Create array containing shapes 

     String[] shapes ={"(no shape selected)","Circle","Equilateral Triangle","Square"}; 

     //Use combobox to create drop down menu 

     JComboBox comboBox=new JComboBox(shapes); 

     JPanel panel1 = new JPanel(new FlowLayout()); //set frame layout 

     JLabel label1 = new JLabel("Select shape:"); 

     panel1.add(label1); 

     panel1.add(comboBox); 



     JTextField text = new JTextField(10); //create text field 


     JFrame frame=new JFrame("Area Calculator Window");//create a JFrame to put combobox 

     frame.setLayout(new FlowLayout()); //set layout 

     frame.add(panel1); 

     frame.add(text); 

     JButton button = new JButton("GO"); //create GO button 

     frame.add(button); 

     //set default close operation for JFrame 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


     //set JFrame ssize 

     frame.setSize(400,250); 

     //make JFrame visible. So we can see it 

     frame.setVisible(true); 

     } 

    } 
+0

在frame.setSize()之前加上'frame.pack()'并更新你的qustion。 – trashgod

+0

“将标签添加到文本字段”是什么意思?设置文本字段的文本?在你的文本框内有一些“幽灵文本”?或者只是在文本框前/后添加标签?在后一种情况下,你应该简单地模仿你为组合框做了什么。 –

+0

只是想在文本框前添加一个标签。我之前模仿了我为组合框做的事,但没有奏效。也许我做错了 –

回答

2

这是一种方法。只需以适当的顺序将所有小部件放入您的panel1即可。

从长远来看,这可能不是很好维护,你会希望有一个比FlowLayout更好的LayoutManager,但如果你只是想学习Swing,这可能是一个好的开始。如果您觉得FlowLayout不够好,请查看LayoutManager教程。我个人的最爱是:BorderLayoutGridBagLayoutMigLayout也可能是一个好的,但我从来没有使用它,它不是JVM的一部分。

import java.awt.FlowLayout; 

import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
import javax.swing.SwingUtilities; 

public class AreaFrame3 { 

    protected void initUI() { 
     // Create array containing shapes 
     String[] shapes = { "(no shape selected)", "Circle", "Equilateral Triangle", "Square" }; 
     // Use combobox to create drop down menu 
     JComboBox comboBox = new JComboBox(shapes); 
     JLabel label1 = new JLabel("Select shape:"); 
     JPanel panel1 = new JPanel(new FlowLayout()); // set frame layout 
     JLabel label2 = new JLabel("Text label:"); 
     JTextField text = new JTextField(10); // create text field 
     panel1.add(label1); 
     panel1.add(comboBox); 
     panel1.add(label2); 
     panel1.add(text); 
     JFrame frame = new JFrame("Area Calculator Window");// create a JFrame to put combobox 
     frame.setLayout(new FlowLayout()); // set layout 
     frame.add(panel1); 
     JButton button = new JButton("GO"); // create GO button 
     frame.add(button); 
     // set default close operation for JFrame 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     // make JFrame visible. So we can see it 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new AreaFrame3().initUI(); 
      } 
     }); 
    } 
}