我写了一个主程序MPPanel,MPWestPanel为其BorderLayout里的WEST部分。
现在我想点击MPWestPanel里事件响应(比如按下某按钮后执行一个新的JFrame或JPanel),怎样让它显示在MPPanel的Center里??
代码如下:import java.awt.* ;
import java.awt.event.* ;
import javax.swing.* ;public class MPPanel extends JFrame implements ActionListener, MouseListener
{
Font fnt = new Font("隶书", Font.PLAIN, 36) ;
JButton btnBack, btnExit, btnMP1, btnMP2, btnMP3 ;
JPanel pane,paneW ;
public MPPanel()
{
super() ;
setSize(1000,700) ;
setLocation(240,100) ;
setResizable(true) ;
setVisible(true) ;
pane = new JPanel(new BorderLayout(10,10)) ;
add(pane) ;
addNorthPane() ; //添加 BorderLayout 布局中 North 部分组件
addSouthPane() ; //添加 BorderLayout 布局中 South 部分组件
paneW = new JPanel() ;
MPWestPanel1 test = new MPWestPanel1() ;
JScrollPane scrollPane = new JScrollPane(test.getComponent()) ;
scrollPane.setPreferredSize(new Dimension(175,540)) ;
paneW.add(scrollPane) ;
pane.add(paneW, BorderLayout.WEST) ;
pane.add( new Button() ,BorderLayout.CENTER) ;
btnBack.addActionListener(this) ;
btnExit.addActionListener(this) ;
}
private void addNorthPane()
{
ImageIcon btnIcon1 = new ImageIcon("image/leftnav-tech.gif") ;
ImageIcon btnIcon2 = new ImageIcon("image/leftnav-press.gif") ;
ImageIcon btnIcon3 = new ImageIcon("image/leftnav-mission.gif") ;
JPanel pnl = new JPanel(new GridLayout(1,3,20,20)) ;
btnMP1 = new JButton("button1",btnIcon1) ;
buttonTouMing(btnMP1) ;
pnl.add(btnMP1) ;
btnMP2 = new JButton("button2",btnIcon2) ;
buttonTouMing(btnMP2) ;
pnl.add(btnMP2) ;
btnMP3 = new JButton("button3",btnIcon3) ;
buttonTouMing(btnMP3) ;
pnl.add(btnMP3) ;
JPanel paneN = new JPanel(new GridBagLayout()) ;
GridBagConstraints gbc = new GridBagConstraints() ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
JLabel label = new JLabel("练习界面",JLabel.CENTER) ;
label.setFont(fnt) ;
paneN.add(label,gbc) ;
gbc.insets = new Insets(0, 20, 0, 10) ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
gbc.anchor = GridBagConstraints.WEST ;
gbc.weightx = 1.0 ;
paneN.add(pnl,gbc) ;
pane.add(paneN, BorderLayout.NORTH) ;
btnMP1.addMouseListener(this) ;
btnMP2.addMouseListener(this) ;
btnMP3.addMouseListener(this) ;
btnMP1.addActionListener(this) ;
btnMP2.addActionListener(this) ;
btnMP3.addActionListener(this) ;
}
private void addSouthPane()
{
btnBack = new JButton("返回") ;
btnExit = new JButton("退出") ;
JPanel paneM = new JPanel(new GridBagLayout()) ;
JPanel pnl = new JPanel(new GridLayout(1,2,20,20)) ;
pnl.add(btnBack) ;
pnl.add(btnExit) ;
GridBagConstraints gbc = new GridBagConstraints() ;
gbc.insets = new Insets(0, 0, 10, 20) ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
gbc.anchor = GridBagConstraints.EAST ;
gbc.weightx = 1.0 ;
paneM.add(pnl,gbc) ;
pane.add( paneM ,BorderLayout.SOUTH) ;
}
private void buttonTouMing(JButton btn) //按钮透明效果
{
btn.setOpaque(false) ;
btn.setContentAreaFilled(false) ;
btn.setBorder(null) ;
btn.setIconTextGap(10) ;
}
private void setWestPanelSize(JScrollPane scrollPane)
{
scrollPane.setPreferredSize(new Dimension(175,540)) ;
scrollPane.setBorder(BorderFactory.createEtchedBorder()) ;
}
public void mouseEntered(MouseEvent me)
{
if (me.getSource() == btnMP1)
btnMP1.setForeground(Color.LIGHT_GRAY) ;
if (me.getSource() == btnMP2)
btnMP2.setForeground(Color.LIGHT_GRAY) ;
if (me.getSource() == btnMP3)
btnMP3.setForeground(Color.LIGHT_GRAY) ;
}
public void mouseExited(MouseEvent mt)
{
if (mt.getSource() == btnMP1)
btnMP1.setForeground(Color.DARK_GRAY) ;
if (mt.getSource() == btnMP2)
btnMP2.setForeground(Color.DARK_GRAY) ;
if (mt.getSource() == btnMP3)
btnMP3.setForeground(Color.DARK_GRAY) ;
}
public void mouseClicked(MouseEvent e) { }
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void actionPerformed(ActionEvent ae)
{
/*if (ae.getSource() == btnBack)
{
dispose() ;
JFrame mainmenu = new MainMenu();
Container container = mainmenu.getContentPane() ;
mainmenu.setContentPane(container) ;
validate();
}*/
if (ae.getSource() == btnExit)
{
System.exit(0) ;
}
if (ae.getSource() == btnMP1)
{
paneW.removeAll() ;
MPWestPanel1 test1 = new MPWestPanel1() ;
JScrollPane scrollPane1 = new JScrollPane(test1.getComponent()) ;
setWestPanelSize(scrollPane1) ;
paneW.add(scrollPane1,BorderLayout.WEST) ;
validate() ;
}
if (ae.getSource() == btnMP2)
{
paneW.removeAll() ;
MPWestPanel2 test2 = new MPWestPanel2() ;
JScrollPane scrollPane2 = new JScrollPane(test2.getComponent()) ;
setWestPanelSize(scrollPane2) ;
paneW.add(scrollPane2,BorderLayout.WEST) ;
validate() ;
}
if (ae.getSource() == btnMP3)
{
paneW.removeAll() ;
MPWestPanel3 test3 = new MPWestPanel3() ;
JScrollPane scrollPane3 = new JScrollPane(test3.getComponent()) ;
setWestPanelSize(scrollPane3) ;
paneW.add(scrollPane3,BorderLayout.WEST) ;
validate() ;
} } public static void main( String[] args )
{
JFrame mainPanel = new MPPanel() ;
mainPanel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
mainPanel.getContentPane() ;
mainPanel.setVisible(true) ;
}
}
现在我想点击MPWestPanel里事件响应(比如按下某按钮后执行一个新的JFrame或JPanel),怎样让它显示在MPPanel的Center里??
代码如下:import java.awt.* ;
import java.awt.event.* ;
import javax.swing.* ;public class MPPanel extends JFrame implements ActionListener, MouseListener
{
Font fnt = new Font("隶书", Font.PLAIN, 36) ;
JButton btnBack, btnExit, btnMP1, btnMP2, btnMP3 ;
JPanel pane,paneW ;
public MPPanel()
{
super() ;
setSize(1000,700) ;
setLocation(240,100) ;
setResizable(true) ;
setVisible(true) ;
pane = new JPanel(new BorderLayout(10,10)) ;
add(pane) ;
addNorthPane() ; //添加 BorderLayout 布局中 North 部分组件
addSouthPane() ; //添加 BorderLayout 布局中 South 部分组件
paneW = new JPanel() ;
MPWestPanel1 test = new MPWestPanel1() ;
JScrollPane scrollPane = new JScrollPane(test.getComponent()) ;
scrollPane.setPreferredSize(new Dimension(175,540)) ;
paneW.add(scrollPane) ;
pane.add(paneW, BorderLayout.WEST) ;
pane.add( new Button() ,BorderLayout.CENTER) ;
btnBack.addActionListener(this) ;
btnExit.addActionListener(this) ;
}
private void addNorthPane()
{
ImageIcon btnIcon1 = new ImageIcon("image/leftnav-tech.gif") ;
ImageIcon btnIcon2 = new ImageIcon("image/leftnav-press.gif") ;
ImageIcon btnIcon3 = new ImageIcon("image/leftnav-mission.gif") ;
JPanel pnl = new JPanel(new GridLayout(1,3,20,20)) ;
btnMP1 = new JButton("button1",btnIcon1) ;
buttonTouMing(btnMP1) ;
pnl.add(btnMP1) ;
btnMP2 = new JButton("button2",btnIcon2) ;
buttonTouMing(btnMP2) ;
pnl.add(btnMP2) ;
btnMP3 = new JButton("button3",btnIcon3) ;
buttonTouMing(btnMP3) ;
pnl.add(btnMP3) ;
JPanel paneN = new JPanel(new GridBagLayout()) ;
GridBagConstraints gbc = new GridBagConstraints() ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
JLabel label = new JLabel("练习界面",JLabel.CENTER) ;
label.setFont(fnt) ;
paneN.add(label,gbc) ;
gbc.insets = new Insets(0, 20, 0, 10) ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
gbc.anchor = GridBagConstraints.WEST ;
gbc.weightx = 1.0 ;
paneN.add(pnl,gbc) ;
pane.add(paneN, BorderLayout.NORTH) ;
btnMP1.addMouseListener(this) ;
btnMP2.addMouseListener(this) ;
btnMP3.addMouseListener(this) ;
btnMP1.addActionListener(this) ;
btnMP2.addActionListener(this) ;
btnMP3.addActionListener(this) ;
}
private void addSouthPane()
{
btnBack = new JButton("返回") ;
btnExit = new JButton("退出") ;
JPanel paneM = new JPanel(new GridBagLayout()) ;
JPanel pnl = new JPanel(new GridLayout(1,2,20,20)) ;
pnl.add(btnBack) ;
pnl.add(btnExit) ;
GridBagConstraints gbc = new GridBagConstraints() ;
gbc.insets = new Insets(0, 0, 10, 20) ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
gbc.anchor = GridBagConstraints.EAST ;
gbc.weightx = 1.0 ;
paneM.add(pnl,gbc) ;
pane.add( paneM ,BorderLayout.SOUTH) ;
}
private void buttonTouMing(JButton btn) //按钮透明效果
{
btn.setOpaque(false) ;
btn.setContentAreaFilled(false) ;
btn.setBorder(null) ;
btn.setIconTextGap(10) ;
}
private void setWestPanelSize(JScrollPane scrollPane)
{
scrollPane.setPreferredSize(new Dimension(175,540)) ;
scrollPane.setBorder(BorderFactory.createEtchedBorder()) ;
}
public void mouseEntered(MouseEvent me)
{
if (me.getSource() == btnMP1)
btnMP1.setForeground(Color.LIGHT_GRAY) ;
if (me.getSource() == btnMP2)
btnMP2.setForeground(Color.LIGHT_GRAY) ;
if (me.getSource() == btnMP3)
btnMP3.setForeground(Color.LIGHT_GRAY) ;
}
public void mouseExited(MouseEvent mt)
{
if (mt.getSource() == btnMP1)
btnMP1.setForeground(Color.DARK_GRAY) ;
if (mt.getSource() == btnMP2)
btnMP2.setForeground(Color.DARK_GRAY) ;
if (mt.getSource() == btnMP3)
btnMP3.setForeground(Color.DARK_GRAY) ;
}
public void mouseClicked(MouseEvent e) { }
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void actionPerformed(ActionEvent ae)
{
/*if (ae.getSource() == btnBack)
{
dispose() ;
JFrame mainmenu = new MainMenu();
Container container = mainmenu.getContentPane() ;
mainmenu.setContentPane(container) ;
validate();
}*/
if (ae.getSource() == btnExit)
{
System.exit(0) ;
}
if (ae.getSource() == btnMP1)
{
paneW.removeAll() ;
MPWestPanel1 test1 = new MPWestPanel1() ;
JScrollPane scrollPane1 = new JScrollPane(test1.getComponent()) ;
setWestPanelSize(scrollPane1) ;
paneW.add(scrollPane1,BorderLayout.WEST) ;
validate() ;
}
if (ae.getSource() == btnMP2)
{
paneW.removeAll() ;
MPWestPanel2 test2 = new MPWestPanel2() ;
JScrollPane scrollPane2 = new JScrollPane(test2.getComponent()) ;
setWestPanelSize(scrollPane2) ;
paneW.add(scrollPane2,BorderLayout.WEST) ;
validate() ;
}
if (ae.getSource() == btnMP3)
{
paneW.removeAll() ;
MPWestPanel3 test3 = new MPWestPanel3() ;
JScrollPane scrollPane3 = new JScrollPane(test3.getComponent()) ;
setWestPanelSize(scrollPane3) ;
paneW.add(scrollPane3,BorderLayout.WEST) ;
validate() ;
} } public static void main( String[] args )
{
JFrame mainPanel = new MPPanel() ;
mainPanel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
mainPanel.getContentPane() ;
mainPanel.setVisible(true) ;
}
}
(MPWestPanel1、MPWestPanel2、MPWestPane3相同,仅文字显示内容不同,仅列一个)
事件响应不为程序中所写,我希望可调用另一个JFrame或JPanel// 界面 West1 部分菜单
import java.awt.* ;
import java.awt.event.* ;
import java.awt.font.FontRenderContext ;
import java.awt.font.LineMetrics ;
import java.awt.image.BufferedImage ;
import javax.swing.* ; public class MPWestPanel1 extends JFrame implements ActionListener, MouseListener
{
JButton[] btns ;
JPanel[] panels ;
MPActionPanel1[] aps ; public MPWestPanel1()
{
assembleActionPanels() ;
assemblePanels() ;
}
public void mousePressed(MouseEvent e)
{
MPActionPanel1 ap = (MPActionPanel1) e.getSource() ;
if (ap.contains(e.getPoint()))
{
ap.toggleSelection() ;
togglePanelVisibility(ap) ;
}
} private void togglePanelVisibility(MPActionPanel1 ap)
{
int index = getPanelIndex(ap) ;
if (panels[index].isShowing())
panels[index].setVisible(false) ;
else
panels[index].setVisible(true) ;
ap.getParent().validate() ;
} private int getPanelIndex(MPActionPanel1 ap)
{
for (int j = 0; j < aps.length; j++)
if (ap == aps[j])
return j ;
return -1 ;
} private void assembleActionPanels()
{
String[] ids = {"资料MP1", "合同处理MP1", "相关参数设定MP1", "帮助MP1" } ;
aps = new MPActionPanel1[ids.length] ;
for (int j = 0; j < aps.length; j++)
aps[j] = new MPActionPanel1(ids[j], this) ;
}
private void assemblePanels()
{
ImageIcon rss = new ImageIcon("image/testok.gif") ;
ImageIcon wri = new ImageIcon("image/comments.gif") ;
ImageIcon sds = new ImageIcon("image/MoreTopics.gif") ;
ImageIcon swa = new ImageIcon("image/yahoo.gif") ;
GridBagConstraints gbc = new GridBagConstraints() ;
gbc.anchor = GridBagConstraints.WEST ;
gbc.gridwidth = GridBagConstraints.REMAINDER ;
gbc.insets = new Insets(3, 20, 3, 0) ;
gbc.weightx = 1.0 ;
JPanel p1 = new JPanel(new GridBagLayout()) ;
JButton btn11 = new JButton("导入1",wri) ;
buttonTouMing(btn11) ;
p1.add(btn11,gbc) ;
JButton btn12 = new JButton("导出1",wri) ;
buttonTouMing(btn12) ;
p1.add(btn12,gbc) ;
JPanel p2 = new JPanel(new GridBagLayout()) ;
JButton btn21 = new JButton("合同编制1",rss) ;
buttonTouMing(btn21) ;
p2.add(btn21,gbc) ;
JButton btn22 = new JButton("预算编制1",rss) ;
buttonTouMing(btn22) ;
p2.add(btn22,gbc) ;
JButton btn23 = new JButton("合同情况上报1",rss) ;
buttonTouMing(btn23) ;
p2.add(btn23,gbc) ;
JButton btn24 = new JButton("合同验收1",rss) ;
buttonTouMing(btn24) ;
p2.add(btn24,gbc) ;
JPanel p3 = new JPanel(new GridBagLayout()) ;
JButton btn31 = new JButton("帐户管理1",sds) ;
buttonTouMing(btn31) ;
p3.add(btn31,gbc) ;
JButton btn32 = new JButton("导航栏1",sds) ;
buttonTouMing(btn32) ;
p3.add(btn32,gbc) ;
JButton btn33 = new JButton("参数设定1",sds) ;
buttonTouMing(btn33) ;
p3.add(btn33,gbc) ;
JButton btn34 = new JButton("保密责任书1",sds) ;
buttonTouMing(btn34) ;
p3.add(btn34,gbc) ;
JButton btn35 = new JButton("打印设置1",sds) ;
buttonTouMing(btn35) ;
p3.add(btn35,gbc) ;
JPanel p4 = new JPanel(new GridBagLayout()) ;
JButton btn41 = new JButton("帮助1",swa) ;
buttonTouMing(btn41) ;
p4.add(btn41,gbc) ;
JButton btn42 = new JButton("关于本软件1",swa) ;
buttonTouMing(btn42) ;
p4.add(btn42,gbc) ;
JButton btn43 = new JButton("最近的文档数据1",swa) ;
buttonTouMing(btn43) ;
p4.add(btn43,gbc) ;
panels = new JPanel[] { p1, p2, p3, p4 } ;
btns = new JButton[] {btn11, btn12,btn21,btn22,btn23,btn24,btn31,btn32,btn33,btn34,btn35,btn41,btn42,btn43} ;
for (int i = 0; i< btns.length; i++)
{
btns[i].addMouseListener(this) ;
btns[i].addActionListener(this) ;
}
} private void buttonTouMing(JButton btn) //按钮透明效果
{
btn.setOpaque(false) ;
btn.setContentAreaFilled(false) ;
btn.setBorder(null) ;
btn.setIconTextGap(8) ;
}
public JPanel getComponent()
{
JPanel panel = new JPanel(new GridBagLayout()) ;
GridBagConstraints gbc = new GridBagConstraints() ;
gbc.insets = new Insets(1, 3, 0, 3) ;
gbc.weightx = 1.0 ;
gbc.fill = GridBagConstraints.HORIZONTAL ;
gbc.gridwidth = GridBagConstraints.REMAINDER ; for (int j = 0; j < aps.length; j++)
{
panel.add(aps[j],gbc) ;
panel.add(panels[j],gbc) ;
panels[j].setVisible(false) ;
}
JLabel padding = new JLabel() ;
gbc.weighty = 1.0 ;
panel.add(padding, gbc) ;
return panel ;
}
public void mouseEntered(MouseEvent me)
{
for (int i = 0; i< btns.length; i++)
{
if (me.getSource() == btns[i])
btns[i].setForeground(Color.LIGHT_GRAY) ;
}
}
public void mouseExited(MouseEvent mt)
{
for (int i = 0; i< btns.length; i++)
{
if (mt.getSource() == btns[i])
btns[i].setForeground(Color.DARK_GRAY) ;
}
}
public void mouseClicked(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
// 事件响应——————???????怎么处理??
public void actionPerformed(ActionEvent ae)
{
for (int i = 0; i< btns.length; i++)
{
if (ae.getSource() == btns[i])
{
btns[i].setForeground(Color.DARK_GRAY) ;
String str = btns[i].getText() ;
JOptionPane.showMessageDialog(null,"欢迎使用" + str + "功能") ;
}
}
}
public static void main(String[] args)
{
MPWestPanel1 test = new MPWestPanel1() ;
JFrame f = new JFrame() ;
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; //关闭窗口时退出程序
f.getContentPane().add(new JScrollPane(test.getComponent())) ;
f.setSize(220, 600) ;
f.setVisible(true) ;
}
}
class MPActionPanel1 extends JPanel
{
String text ;
Font font ;
private boolean selected ;
BufferedImage open, closed ;
int WIDTH = 160, OFFSET = 25, ArrowX = 140, ArrowY = 8 ; public MPActionPanel1(String text, MouseListener ml)
{
this.text = text ;
addMouseListener(ml) ;
font = new Font("宋体", Font.BOLD, 13) ;
selected = false ;
setBackground(new Color(200, 200, 220)) ;
setPreferredSize(new Dimension(WIDTH, 25)) ;
setBorder(BorderFactory.createRaisedBevelBorder()) ; //设置边界
setPreferredSize(new Dimension(WIDTH, 25)) ;
setRequestFocusEnabled(true) ;
}
public void toggleSelection()
{
selected = !selected ;
repaint() ;
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g) ;
Graphics2D g2 = (Graphics2D) g ;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON) ;
int h = getHeight() ;
Image downarrow = new ImageIcon("image/downarrow.gif").getImage() ;
Image uparrow = new ImageIcon("image/uparrow.gif").getImage() ;
if (selected)
g2.drawImage(uparrow, ArrowX, ArrowY, this);
else
g2.drawImage(downarrow, ArrowX, ArrowY, this);
g2.setFont(font) ;
FontRenderContext frc = g2.getFontRenderContext() ;
LineMetrics lm = font.getLineMetrics(text, frc) ;
float height = lm.getAscent() + lm.getDescent() ;
float x = OFFSET ;
float y = (h + height) / 2 - lm.getDescent() ;
g2.drawString(text, x, y) ;
}
}
现在想点击MPWestPanel的按钮来激活事件,使其显示在MPPanel的CENTER事件响应没搞定
我这几天自己写了部分代码,可有问题:可以在CENTER部分显示了,但似乎会报错(我用eclipse编译运行),但不影响运行。
可郁闷的是总会新建一个MPPanel,显示内容也在新的MPPanel里;不能在原来的里面显示吗??事件响应部分代码如下,各位大侠帮看看啊!!
public void actionPerformed(ActionEvent ae)
{
MPPanel mppanel = new MPPanel();
// 练习时为区别起见,第奇数个按钮的事件响应与第偶数个按钮事件响应不同
for (int i = 0; i < btns.length; i=i+2)
{
if (ae.getSource() == btns[i])
{
btns[i].setForeground(Color.DARK_GRAY) ;
String str = btns[i].getText() ;
mppanel.paneC.removeAll() ;
CenterPanel cp = new CenterPanel() ; // 调用JFrame程序CenterPanel
cp.setVisible(false) ;
mppanel.paneC.add(new JLabel("欢迎使用" + str + "功能",JLanel.CENTER) ;
JScrollPane scroll = new JScrollPane(cp.getContentPane());
mppanel.paneC.add(scroll) ;
validate() ;
}
}
for (int i = 1; i < btns.length; i=i+2)
{
if (ae.getSource() == btns[i])
{
btns[i].setForeground(Color.DARK_GRAY) ;
String str = btns[i].getText() ;
mppanel.paneC.removeAll() ;
CenterPanelCopy cpCopy = new CenterPanelCopy() ; // 调用JFrame程序CenterPanelCopy
cp.setVisible(false) ;
mppanel.paneC.add(new JLabel("欢迎使用" + str + "功能",JLanel.CENTER) ;
JScrollPane scroll = new JScrollPane(cpCopy.getContentPane());
mppanel.paneC.add(scroll) ;
validate() ;
}
} }
并且在构造函数中初始化mpPanel,这样在事件处理的过程中就可以直接操纵MPPanel了
2.eclipse报错的原因在19行,转型错误
if (e.getSource().getClass().equals(MPActionPanel1.class)) {
}
把你写的逻辑放到if中就没有错误了
super();
this.mainPanel = mainPanel;
}MPPanel中26行改为PWestPanel1 test = new MPWestPanel1(this);
用我后来贴的事件响应,最后运行效果还是会新建一个MPPanel啊????
好惆怅
public void actionPerformed(ActionEvent ae) {
for (int i = 0; i < btns.length; i=i+2)
{
if (ae.getSource() == btns[i])
{
btns[i].setForeground(Color.DARK_GRAY) ;
String str = btns[i].getText() ;
mainPanel.paneC.removeAll();
mainPanel.paneC.add(new JLabel("welcome to use" + str + "funcational"));
mainPanel.validate() ;
}
}
for (int i = 1; i < btns.length; i=i+2)
{
if (ae.getSource() == btns[i])
{
btns[i].setForeground(Color.DARK_GRAY) ;
String str = btns[i].getText() ;
mainPanel.paneC.removeAll() ;
mainPanel.paneC.add(new JLabel("welcome to use" + str + "funcational"));
mainPanel.validate();
}
}
}
public MPWestPanel1(MPPanel mainPanel) throws HeadlessException {
super();
this.mainPanel = mainPanel;
assembleActionPanels();
assemblePanels();
}MPPanel中:
MPWestPanel1 test = new MPWestPanel1(this);
我先前在事件响应里写的是 validate() 而不是 mainPanel.validate();
这几天麻烦你了 Thank you !