2013-07-22 116 views
1

当我把我的JPanel用BorderLayout的工作,它告诉我:constructer JPanel in class JPanel cannot be applied to given types; required: no arguments; found: BorderLayout; reason: actual and formal argument lists differ in length;为什么我的BorderLayout不能与我的JPanel一起工作?

这里是我的代码:

public class MTGSAMPServerReference extends JFrame implements ActionListener { 

    public static Toolkit tk = Toolkit.getDefaultToolkit(); 
    static int ScrnWidth = ((int) tk.getScreenSize().getWidth()); 
    static int ScrnHeight = ((int) tk.getScreenSize().getHeight()); 

    private static final long serialVersionUID = 1L; 
    private static JList list1; 
    private static JButton next; 

    public MTGSAMPServerReference() { 
     // set flow layout for the frame 
     this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEADING)); 
     Object[] data1 = { "Value 1", "Value 2", "Value 3", "Value 4", "Value 5" }; 
     JPanel controls = new JPanel(new BorderLayout(5,5)); // The line getting the main error. 
     list1 = new JList<Object>(data1); 
     list1.setVisibleRowCount(5); 
     next = new JButton("Next"); 
     next.addActionListener(this); 
     controls.add(new JScrollPane(list1)); // A result error of the JPanel error^
     controls.add(next, BorderLayout.PAGE_END); // A result error of the JPanel error^
     // adjust numbers as needed. 
     controls.setBorder(new EmptyBorder(25,25,0,0)); 

     add(controls); // A result error of the JPanel error^
     // add list to frame 
     add(list1); 
     add(next); 
    } 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     if (e.getActionCommand().equals("Next")) { 
      int index = list1.getSelectedIndex(); 
      System.out.println("Index Selected: " + index); 
      String s = (String) list1.getSelectedValue(); 
      System.out.println("Value Selected: " + s); 
     } 
    } 
    private static void createAndShowGUI() { 
     //Create and set up the window. 
     JFrame f = new MTGSAMPServerReference(); 
     //Display the window. 
     f.pack(); 
     f.setVisible(true); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     f.setSize(1200, 800); 
     f.setLocationRelativeTo(null); 
     list1.setSize(250, 250); 
     list1.setLocation(0, 0); 
     next.setSize(75, 25); 
     next.setLocation(251, 276); 
    } 

    public static void main(String[] args) { 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
     createAndShowGUI(); 
     } 
     }); 
    } 
} 

缺什么在我的代码? 我有我的所有进口,我相信这只是一个小错误,也许是一个错字。

任何和所有帮助表示赞赏!

在此先感谢!

编辑:这里是我有进口:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.border.*; 
+0

为什么你忽略了'import'语句? –

+0

@AndrewThompson人们总是告诉我只输入必要的代码。过去我被告知不包括进口产品。我应该包括他们吗? – knorberg

+0

*“我应该吗?”*我会把“包装进口”放入SSCCE,就像我为我提供的例子一样。它仅向源代码添加了5行(在这种情况下),并且非常清楚哪些软件包包含这些类。顺便说一句,当我**做**添加在SSCCE中看到的进口 - 代码为我编译,没有任何警告或错误。 –

回答

0

确保您尚未创建与保留字或类名的任何文件。

相关问题