我有两个文件,一个是Main.java
,第二个是frame.java
。
我正在创建桌面应用程序,因此我想在scrollpane
文件中根据需要垂直或水平添加Main.java
。
Frame.java
会抛出JPanel
抓取的Main.java
对象并动态加载到JFrame
。
所以请任何人告诉我,如何添加scrollpane
或scrollbar
。哪个最好,我不知道。谢谢..
Main.java:
package pack;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main {
public static void main(String[] args) {
JPanel pn = null;
JFrame mainFrame = null;
frame login = new frame();
mainFrame = new JFrame("Prem");
mainFrame.setLayout(new BorderLayout());
mainFrame.setDefaultCloseOperation(mainFrame.EXIT_ON_CLOSE);
mainFrame.setSize(500,500);
mainFrame.setLocationRelativeTo(null);
pn=login.getLogin();
mainFrame.add(pn,BorderLayout.CENTER);
mainFrame.setVisible(true);
}
public Main() {
super();
}
}
这是从方法frame.java
抛出面板对象的第二个文件package pack;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.AbstractAction;
import java.awt.*;
import java.awt.event.*;
public class frame {
JPanel pane = null,pane1=null;
JTextField userText=null,passText=null;
JLabel userLabel =null,passLabel=null,errorLabel=null;
JButton submitLogin = null;
public frame()
{
pane = new JPanel();
pane.setLayout(null);
}
public JPanel getLogin()
{
userLabel = new JLabel("UserName");
pane.add(userLabel);
userLabel.setBounds(5,10,100, 30);
userText = new JTextField();
pane.add(userText);
userText.setBounds(110,10,120,30);
passLabel = new JLabel("PassWord");
pane.add(passLabel);
passLabel.setBounds(5,60,100, 30);
passText = new JTextField();
pane.add(passText);
passText.setBounds(110,60,120,30);
errorLabel = new JLabel("");
pane.add(errorLabel);
errorLabel.setBounds(5,150,180,30);
submitLogin = new JButton("Submit");
pane.add(submitLogin);
submitLogin.setBounds(80,110,90,30);
submitLogin.addActionListener(new AbstractAction(){
public void actionPerformed(ActionEvent e)
{
if(submitLogin.getActionCommand() == "Submit")
{
if(userText.getText().isEmpty() || passText.getText().isEmpty())
{
errorLabel.setText("Enter UserName And Password");
}
else
{
//connection
}
}
else
{
System.exit(0);
}
}
});
return pane;
}
}
答案 0 :(得分:0)
您对该代码有几个问题,包括:
setBounds(...)
,这是您应该以几乎所有代价避免的事情,以及如果您想使用JScrollPane必须避免的事情,因为JScrollPane不适用于null布局。而是阅读并使用布局管理器。 ==
运算符比较字符串。您不想使用==
比较字符串。请改用equals(...)
或equalsIgnoreCase(...)
方法。理解==
检查两个对象是否相同而不是您感兴趣的。另一方面,这些方法检查两个字符串是否在同一个字符中具有相同的字符订单,这就是重要的事情。