Кнопки JToolbar моего приложения вообще не реагируют при нажатии в формате .jar, но отлично реагируют на NetBeans IDE, я действительно не понимаю, почему я ' м с этой проблемой, вот образ, иллюстрирующий JToolBarButtons, которые не отвечают на применение:Почему JToolbarbuttons работает в среде Netbeans IDE, но не в исполняемом формате jar
Кроме того, часть кода, я думаю, что испытывает проблемы показано ниже:
public class MainMenu extends JFrame implements ActionListener{
MyDesktopPane dp = new MyDesktopPane();
String TITLE = "The complete payroll system ";
JMenuBar menubar = new JMenuBar();
JPanel panel_Bottom = new JPanel();
JPanel panel_Top = new JPanel();
JButton btnOut = new JButton(new ImageIcon(getClass().getResource("logout.png")));
Image img = new ImageIcon(getClass().getResource("/16.jpg")).getImage();
public MainMenu() {
super("PayRoll System");
panel_Top.setLayout(new BorderLayout());
panel_Top.setPreferredSize(new Dimension(10,150));
JToolBar tool=createJToolBar();tool.setBackground(new Color(36,121,183));
panel_Top.add(tool,BorderLayout.PAGE_START);
getContentPane().add(panel_Top,BorderLayout.PAGE_START);
getContentPane().add(dp,BorderLayout.CENTER);
btnOut.setBounds(600,230,75,35);
dp.add(btnOut);
{
btnOut.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
UnloadWindow();
}
});
}
}
public void actionPerformed(ActionEvent e){
Login log= new Login();
Object source = e.getSource();
if(source == btnOut){
log.setLogin();
dispose();
}
}
protected JToolBar createJToolBar()
{
JToolBar toolbar = new JToolBar("Toolbar");
toolbar.add(CreateJToolbarButton("Employee-Entry", "employee.png", "Emp_Entry",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("Employee Position Settings", "setting.png","Settings",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("DTR", "admin.png","DTR",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("User - Settings", "inf.png","User_Settings",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("Cash_Advance", "cash.png","Cash_Advance",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("Employee - Payoll", "rep.png","Reports_Payroll",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("Notepad", "SimpleTextEdit.png", "Notepad",
JToolBarActionListener));
toolbar.addSeparator();
toolbar.add(CreateJToolbarButton("Calculator", "Calculator2.png", "Calculator",
JToolBarActionListener));
toolbar.addSeparator();
return toolbar;
}
ActionListener JToolBarActionListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
empSettings set= new empSettings();
empEntry inf= new empEntry();
UserSettings panel1 = new UserSettings();
notepad note= new notepad();
BasicCalc calc= new BasicCalc();
empDeduction frameDeduct= new empDeduction();
empCashAdvance cash= new empCashAdvance();
empPayroll pay = new empPayroll();
String source = e.getActionCommand();
if(source == "Emp_Entry")
{
inf.setEntry();
}
if (source == "Settings")
{
set.setSettings();
}
if (source == "Reports_Payroll")
{
pay.setPay();
}
if (source == "DTR")
{
frameDeduct.setDeduct();
}
if (source == "Notepad")
{
note.setNote();
}
if (source == "Calculator")
{
calc.setCalc();
}
if (source == "User_Settings")
{
panel1.frameUser();
}
if(source == "Cash_Advance")
{
cash.setCash();
}
}
};
protected void paintComponent(Graphics g) {
Graphics2D graphics = (Graphics2D) g.create();
Image img = new ImageIcon(getClass().getResource("/16.jpg")).getImage();
graphics.drawImage(img, 0, 0, getWidth(), getHeight(), null);
graphics.dispose();
}
protected void UnloadWindow()
{
try
{
int reply = JOptionPane.showConfirmDialog(this,"Are you sure to exit?",TITLE,JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
if (reply == JOptionPane.YES_OPTION)
{
setVisible(false);
System.exit(0);
}
else {
}
}
catch(Exception e)
{}
}
public JButton CreateJToolbarButton(String srcToolTipText,String srcImageLocation,String srcActionCommand, ActionListener JToolBarActionListener)
{
JButton bttnToolbar = new JButton(new ImageIcon(getClass().getResource (srcImageLocation)));
bttnToolbar.setActionCommand(srcActionCommand);
bttnToolbar.setToolTipText(srcToolTipText);
bttnToolbar.setCursor(new Cursor(Cursor.HAND_CURSOR));
bttnToolbar.setFont(new Font("Dialog", Font.PLAIN, 12));
bttnToolbar.addActionListener(JToolBarActionListener);
return bttnToolbar;
}
public void setMain(){
MainMenu p1= new MainMenu();
p1.setSize(1228,700);
p1.setLocation(70,15);
p1.setVisible(true);
p1.setResizable(false);
}
public static void mainPane(){
new MainMenu();
}
Я был бы признателен, если бы кто-нибудь мог мне помочь в этом, спасибо.
Вы обеспечили, чтобы ресурсы добавлялись в банку, перечисляя его содержимое? Являются ли они в ожидаемом местоположении ресурсов, если да? – clearlight
Спасибо за ответ. Извините, я совершенно новый для упаковки в банке, поэтому я не понимаю, что вы подразумеваете под добавлением ресурсов, перечисляя его содержимое, я думал, что Netbeans позаботится обо всем этом. –
@damolaolawle Возможно, это так, но вы упомянули о банке, которую она создает. Используйте jar -tf, чтобы перечислить содержимое банки и посмотреть, как вещи выложены и искать ресурсы в банке, которую вы ищете. Иногда IDE поддерживают контекст таким образом, который может удовлетворять их собственным ссылкам, но не содержит инструкций или настроек, необходимых для записи содержимого в дистрибутив. Важно иметь возможность понять ваше приложение и как оно экспортируется в банку и как найти ресурсы. –
clearlight