问题描述
我正在做一个电脑商店管理项目,我有很多框架和面板。我有一个名为管理面板的类,其中包含进一步具有一些按钮的框架,即:主页、关于我们、添加产品等。 现在我想在点击按钮 ADD PRODUCT 时在框架内启动一个新面板,但面板的代码应该来自不同的类,比如同一个包中名为 addProduct 的类,我该怎么做?
在这里你可以看到所有的按钮
我已经成功地在同一框架上启动了来自不同类的面板,但问题是启动了一个新框架,我不想这样做。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class adminPanel implements ActionListener {
public static final Font MY_FONT = new Font("Ubuntu Mono",Font.BOLD,20);
JFrame frame = new JFrame();
JPanel panel1 = new JPanel();
JButton admin = new JButton("Administrator Login");
JButton employee = new JButton("Employee Login");
Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
ImageIcon image = new ImageIcon("C:\\Users\\faroo\\Desktop\\car sales stock\\ComputerImage.jpg");
Image scaledImage = image.getimage().getScaledInstance(screensize.width,screensize.height,Image.SCALE_SMOOTH);
JLabel backgroundImage;
JButton[] buttons = new JButton[10];
String[] dropDown = new String[]{
"Hi","Hello"
};
JList list = new JList(dropDown);
adminPanel() {
//Frame
frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setSize(screensize.width,screensize.height);
frame.setLocation((screensize.width / 2) - (frame.getWidth() / 2),(screensize.height) / 2 - (frame.getHeight() / 2));
frame.setLayout(null);
//IMAGE BACKGROUND
image = new ImageIcon(scaledImage);
backgroundImage = new JLabel(image);
backgroundImage.setBounds(0,screensize.width,screensize.height);
//PANEL 1
panel1.setBounds(screensize.width / 2 - 485,120,970,42);
panel1.setBackground(new Color(223,223,223));
panel1.setLayout(new FlowLayout(FlowLayout.LEADING));
//BUTTON: HOME + ABOUT US + ADD PRODUCT + REMOVE PRODUCT +SALES DETAILS +SAlES ORDER
buttons[0] = new JButton("HOME");
buttons[1] = new JButton("ABOUT US");
buttons[2] = new JButton("ADD PRODUCT");
buttons[3] = new JButton("REMOVE PRODUCT");
buttons[4] = new JButton("SALES ORDER");
buttons[5] = new JButton("SALES DETAILS");
buttons[6] = new JButton("LOG OUT");
for (int i = 0; i <= 6; i++) {
buttons[i].setFont(MY_FONT);
buttons[i].setFocusable(false);
buttons[i].setBackground(new Color(61,94,148));
buttons[i].setForeground(new Color(223,223));
panel1.add(buttons[i]);
buttons[i].addActionListener(this);
}
frame.getContentPane().add(panel1);
frame.getContentPane().add(backgroundImage);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 0; i <= 6; i++) {
if (e.getSource() == buttons[i]) {
for (int j = 0; j <= 6; j++) {
buttons[j].setBackground(new Color(61,148));
}
buttons[i].setBackground(new Color(69,89,119));
}
}
if (e.getSource() == buttons[2]) {
addProduct asd = new addProduct();
}
}
}
package carsalessystem;
import java.awt.Color;
import javax.swing.JPanel;
public class addProduct extends adminPanel{
addProduct(){
JPanel panel2 = new JPanel();
frame.dispose();
panel2.setBackground(Color.darkGray);
panel2.setBounds(panel1.getLocation().x,panel1.getLocation().y+42,800);
frame.add(panel2);
frame.add(backgroundImage);
frame.setVisible(true);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)