JFrame の borderlayout の CENTER に jscrollpane が挿入されています 「UI」という名前の JPANEL がすでに jscrollpane に挿入されています UI Jpanel でボタンがクリックされたときに、新しい JPanel 名「OUTPUTPAGE1」を jscrollpane に挿入したい
class OutputPage1 extends JPanel
{
//JButton jb;
XDash xd;
Plain p;
YourPersonal yp;
Heading sp;
StartTalkTable sTalk;
AtGlance g;
BlueIndex in;
JLabel image1,image2,image3,image4,image5;
MemberInfo mi;
OrangeBorder o1;
Footer f;
OutputPage1()
{
//jb=new JButton("HI");
xd=new XDash();
p=new Plain();
yp=new YourPersonal();
sp=new Heading("Statement Period: Jan 1, 2013 to Mar 31, 2013","#000000","#C7D9F1",13); //Heading(String t,String fg,String bg,int size)//
sp.setHorizontalAlignment(sp.CENTER);
sp.setFont(new Font("Segoe UI",Font.BOLD,13));
sTalk=new StartTalkTable();
g=new AtGlance();
in=new BlueIndex();
image1=new JLabel(new ImageIcon("D:/Syntel_Java/images/firstimage.jpg"));
image2=new JLabel(new ImageIcon("D:/Syntel_Java/images/secondimage.jpg"));
image3=new JLabel(new ImageIcon("D:/Syntel_Java/images/thirdimage.jpg"));
image4=new JLabel(new ImageIcon("D:/Syntel_Java/images/fourthimage.jpg"));
image5=new JLabel(new ImageIcon("D:/Syntel_Java/images/secondimage.jpg"));
mi=new MemberInfo();
o1=new OrangeBorder();
f=new Footer();
this.setLayout(null);
//this.add(jb);
//jb.setBounds(50,800,100,100); //setBounds(int x, int y, int width, int height)//
this.add(xd);
xd.setBounds(50,33,150,150); //setBounds(int x, int y, int width, int height)//
this.add(p);
p.setBounds(100,36,150,150); //setBounds(int x, int y, int width, int height)//
this.add(yp);
yp.setBounds(50,80,400,90); //setBounds(int x, int y, int width, int height)//
this.add(sp);
sp.setBounds(420,120,335,27); //setBounds(int x, int y, int width, int height)//
this.add(sTalk);
sTalk.setBounds(230,160,457,314); //setBounds(int x, int y, int width, int height)//
this.add(g);
g.setBounds(230,481,457,36); //setBounds(int x, int y, int width, int height)//
this.add(in);
in.setBounds(230,525,458,429); //setBounds(int x, int y, int width, int height)//
this.add(image1);
image1.setBounds(50,187,138,138); //setBounds(int x, int y, int width, int height)//
this.add(image2);
image2.setBounds(50,320,138,138); //setBounds(int x, int y, int width, int height)//
this.add(image3);
image3.setBounds(50,453,138,138); //setBounds(int x, int y, int width, int height)//
this.add(image4);
image4.setBounds(50,580,138,138); //setBounds(int x, int y, int width, int height)//
this.add(image5);
image5.setBounds(50,700,138,138); //setBounds(int x, int y, int width, int height)//
this.add(mi);
mi.setBounds(50,840,168,116); //setBounds(int x, int y, int width, int height)//
this.add(f);
f.setBounds(220,1000,270,100); //setBounds(int x, int y, int width, int height)//
this.add(o1);
o1.setBounds(20,980,700,200); //setBounds(int x, int y, int width, int height)//
this.setBackground(Color.white);
this.setPreferredSize(new Dimension(getWidth(),1500)); //Dimension(int width, int height) //
this.setBorder(BorderFactory.createLineBorder(Color.decode("#C1FC79"),20));
}
}
class UI extends JPanel implements ActionListener,MouseListener
{
JButton account,member_details,loadTemplate,viewSummary;
JLabel member_xplain1,member_xplain2;
JTextField userID,memberID,firstName,lastName;
JPasswordField password;
Image bg1,bg2;
JComboBox fdate,fmonth,fyear,tdate,tmonth,tyear;
static int CURRENT=1;
String[] dates,months,years;
UI()
{
account=new JButton(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/account.jpg"));
member_details=new JButton(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/member.jpg"));
loadTemplate=new JButton(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/load_normal.jpg"));
viewSummary=new JButton(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/view_normal.jpg"));
member_xplain1=new JLabel(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/member_xplain.jpg"));
member_xplain2=new JLabel(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/member_details.jpg"));
memberID=new JPasswordField(10);
firstName=new JTextField("ENTER YOUR NAME",10);
lastName=new JTextField("ENTER YOUR SURNAME",10);
userID=new JTextField("Enter your UserID",10);
password=new JPasswordField(10);
dates=new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
months=new String[]{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
years=new String[]{"2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014"};
fdate=new JComboBox(dates);
fmonth=new JComboBox(months);
fyear=new JComboBox(years);
tdate=new JComboBox(dates);
tmonth=new JComboBox(months);
tyear=new JComboBox(years);
this.setLayout(null);
this.add(account);
account.setBounds(352,582,266,45); //setBounds(int x, int y, int width, int height)//
this.add(member_details);
member_details.setBounds(618,582,266,45); //setBounds(int x, int y, int width, int height)//
this.add(userID);
userID.setBounds(610,160,160,28); //setBounds(int x, int y, int width, int height)//
this.add(password);
password.setBounds(610,216,160,28); //setBounds(int x, int y, int width, int height)//
this.add(memberID);
memberID.setBounds(610,160,160,28); //setBounds(int x, int y, int width, int height)//
this.add(firstName);
firstName.setBounds(610,216,160,28); //setBounds(int x, int y, int width, int height)//
this.add(lastName);
lastName.setBounds(610,272,160,28); //setBounds(int x, int y, int width, int height)//
this.add(fdate);
fdate.setBounds(605,327,51,28); //setBounds(int x, int y, int width, int height)//
this.add(fmonth);
fmonth.setBounds(656,327,100,28); //setBounds(int x, int y, int width, int height)//
this.add(fyear);
fyear.setBounds(756,327,65,28); //setBounds(int x, int y, int width, int height)//
this.add(tdate);
tdate.setBounds(605,382,51,28); //setBounds(int x, int y, int width, int height)//
this.add(tmonth);
tmonth.setBounds(656,382,100,28); //setBounds(int x, int y, int width, int height)//
this.add(tyear);
tyear.setBounds(756,382,65,28); //setBounds(int x, int y, int width, int height)//
this.add(loadTemplate);
loadTemplate.setBounds(424,425,420,58); //setBounds(int x, int y, int width, int height)//
loadTemplate.setBorderPainted(false);
this.add(viewSummary);
viewSummary.setBounds(425,495,420,58); //setBounds(int x, int y, int width, int height)//
viewSummary.setBorderPainted(false);
this.add(member_xplain1);
member_xplain1.setBounds(350,96,551,485); //setBounds(int x, int y, int width, int height)//
this.add(member_xplain2);
member_xplain2.setBounds(350,96,551,485); //setBounds(int x, int y, int width, int height)//
//ACTION LISTENER//
viewSummary.addActionListener(this);
loadTemplate.addActionListener(this);
account.addActionListener(this);
member_details.addActionListener(this);
//MOUSE LISTENER//
viewSummary.addMouseListener(this);
loadTemplate.addMouseListener(this);
}
public void actionPerformed(ActionEvent e) //public void actionPerformed(ActionEvent e)//
{
if(e.getSource()==account)
{
if(CURRENT==1)
{
//DO NOTHING//
}
if(CURRENT==2)
{
CURRENT=1;
this.repaint();
}
}
if(e.getSource()==member_details)
{
if(CURRENT==1)
{
CURRENT=2;
this.repaint();
}
if(CURRENT==2)
{
//DO NOTHING//
}
}
}
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
if(e.getSource()==loadTemplate)
{
loadTemplate.setIcon(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/load_hover.jpg"));
}
if(e.getSource()==viewSummary)
{
viewSummary.setIcon(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/view_over.jpg"));
}
}
public void mouseExited(MouseEvent e)
{
if(e.getSource()==loadTemplate)
{
loadTemplate.setIcon(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/load_normal.jpg"));
}
if(e.getSource()==viewSummary)
{
viewSummary.setIcon(new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/view_normal.jpg"));
}
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void paintComponent(Graphics g)
{
if(CURRENT==1)
{
bg1=new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/1.jpg").getImage();
g.drawImage(bg1,0,0,getWidth(),getHeight(),this);
//SETTING PAGE2 ELEMENTS TO FALSE//
memberID.setVisible(false);
firstName.setVisible(false);
lastName.setVisible(false);
fdate.setVisible(false);
fmonth.setVisible(false);
fyear.setVisible(false);
tdate.setVisible(false);
tmonth.setVisible(false);
tyear.setVisible(false);
loadTemplate.setVisible(false);
viewSummary.setVisible(false);
member_xplain2.setVisible(false);
//SETTING PAGE1 ELEMENTS TO TRUE//
userID.setVisible(true);
password.setVisible(true);
member_xplain1.setVisible(true);
}
if(CURRENT==2)
{
member_xplain1.setVisible(false);
userID.setVisible(false);
password.setVisible(false);
bg1=new ImageIcon("D:/SYNTEL_JAVA_PROJECT/images/2.jpg").getImage();
g.drawImage(bg1,0,0,getWidth(),getHeight(),this);
//SETTING PAGE2 ELEMENTS TO TRUE//
memberID.setVisible(true);
firstName.setVisible(true);
lastName.setVisible(true);
fdate.setVisible(true);
fmonth.setVisible(true);
fyear.setVisible(true);
tdate.setVisible(true);
tmonth.setVisible(true);
tyear.setVisible(true);
loadTemplate.setVisible(true);
viewSummary.setVisible(true);
//SETTING PAGE1 ELEMENTS TO FALSE//
userID.setVisible(false);
password.setVisible(false);
}
}
}
class Demo extends JFrame implements AdjustmentListener,MouseListener
{
Demo x;
UI ui;
OutputPage1 op1;
JScrollPane jsp,jsp2;
Demo()
{
ui=new UI();
op1=new OutputPage1();
jsp=new JScrollPane(ui,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jsp.setViewportView(ui);
this.setLayout(new BorderLayout());
this.add(new BlackPanel(),BorderLayout.WEST);
this.add(new BlackPanel(),BorderLayout.EAST);
this.add(new BlackPanel(),BorderLayout.NORTH);
this.add(new BlackPanel(),BorderLayout.SOUTH);
this.add(jsp,BorderLayout.CENTER);
ui.loadTemplate.addMouseListener(this);
jsp.getVerticalScrollBar().addAdjustmentListener(this);
jsp.getHorizontalScrollBar().addAdjustmentListener(this);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setExtendedState(MAXIMIZED_BOTH);
x=this;
}
public void mouseClicked(MouseEvent e)
{
if(e.getSource()==ui.loadTemplate)
{
jsp.setViewportView(op1);
jsp.setVisible(false);
op1.setVisible(true);
jsp.getViewport().revalidate();
// new Demo();
//jsp.getViewport().repaint();
}
}
public void mouseEntered(MouseEvent e)
{}
public void mouseExited(MouseEvent e)
{}
public void mousePressed(MouseEvent e)
{}
public void mouseReleased(MouseEvent e)
{}
//ADJUSTMENT LISTENER//
public void adjustmentValueChanged(AdjustmentEvent e) //adjustmentValueChanged(AdjustmentEvent e) //
{
jsp.getVerticalScrollBar().setEnabled(true);
jsp.getVerticalScrollBar().setBlockIncrement(10);
jsp.getVerticalScrollBar().setUnitIncrement(10);
}
public static void main(String args[])
{
Demo z=new Demo();
}
}
私は複雑なものでやりたかったタスクを実行するはるかに単純なコードを書くことで解決策を得ました....それが同じ問題を抱えているすべての人に役立つことを願っています:) :) `
class Panel1 extends JPanel
{
JLabel jb1;
JButton but;
Panel1()
{
jb1=new JLabel("I AM ON PANEL 1");
but=new JButton("click me to go to PANEL2");
this.setLayout(new BorderLayout());
this.add(jb1,BorderLayout.CENTER);
this.add(but,BorderLayout.SOUTH);
}
}
class Panel2 extends JPanel
{
JLabel jb2;
Panel2()
{
jb2=new JLabel("NOW PANEL 2 SHOULD APPEAR");
this.setLayout(new BorderLayout());
this.add(jb2,BorderLayout.CENTER);
}
}
class Trial extends JFrame implements MouseListener
{
JFrame mainFrame;
Panel1 p1;
Panel2 p2;
JScrollPane jsp;
Trial()
{
p1=new Panel1();
p2=new Panel2();
jsp=new JScrollPane(p1);
this.setLayout(new BorderLayout());
p1.but.addMouseListener(this);
this.add(jsp,BorderLayout.CENTER);
this.setVisible(true);
this.setExtendedState(MAXIMIZED_BOTH);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void mouseEntered(MouseEvent e)
{}
public void mouseExited(MouseEvent e)
{}
public void mousePressed(MouseEvent e)
{}
public void mouseReleased(MouseEvent e)
{}
public void mouseClicked(MouseEvent e)
{
if(e.getSource()==p1.but)
{
jsp.setViewportView(p2);
jsp.getViewport().revalidate();
System.out.println("YES I AM LISTENING TO YOU");
}
}
public static void main(String args[])
{
new Trial();
}
}`
そしてそれはトリックを行います。