09. maj 2003 - 19:23
Der er
4 kommentarer og
1 løsning
skifte focus fra JFrame til JInternalFrame
har et lille problem starte mit main "Ydreframe" op
samtidig med at det starter op har jeg en JInternalFrame som starter op oxo.
Men det har ikke focus..det har derimod min Ydreframe.
hvordan får jeg automatisk focus til min JInternalFrame med det samme den ydreframe starter op??
håber i kan hjælpe :)
hmmm ok kan ik får det til at virke.. skal den metode sættes i main eller??
smider lige min kode ind det fylder af hø til men skod på det :)
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
public class Main extends JFrame implements ActionListener, FocusListener
{
private String javaversion =(System.getProperty("java.version"));
private JDesktopPane desktop;
private JMenuBar menuBar;
private JMenu filer, varer, lager, stat, lev,fak ;
private JMenuItem menuItem;
private Guisalg salg;
//private ImageIcon top_icon = new ImageIcon("images/farm.gif");
//private ImageIcon oversigt_icon = createImageIcon("images/oversigt.gif");
public static String linie;
private Main()
{
//Opretter vinudet med en overskrift og derefter et icon
super("system");
//setIconImage(top_icon.getImage());
//Tager de første 3 karaktere i stringen og gemmer dem i en ny string
String version= javaversion.substring(0,3);
// Tjekker om javaversionen er 1.4 og kreere et nyt look hvis dette er tilfældet ellers hopper den det over
if(version.equals("1.4"))
{
this.setUndecorated(true);
this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
}
//Oprette det ydre vindue med en indent på 50px hele vejen rundt
int inset = 0;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(inset, inset,screenSize.width, screenSize.height);
//Opretter GUI.
//bruges til at oprette de indre vinduer
desktop = new JDesktopPane();
// tilføjer desktop til contentpane
setContentPane(desktop);
//Tilføjer menupunkt til menubaren
setJMenuBar(createFiler());
setJMenuBar(createVarer());
setJMenuBar(createLager());
setJMenuBar(createStatistik());
setJMenuBar(createLeverandoer());
setJMenuBar(createFaktura());
//Starter salgsvindue op
createGuiSalg();
try
{
salg.setSelected(true);
}
catch (Exception e)
{
System.out.println("der opstod en fejl");
}
salg.requestFocus();
salg.requestFocusInWindow();
}
private JMenuBar createFiler()
{
//Opretter en MenuBar
menuBar = new JMenuBar();
//Opretter en JMenu
filer = new JMenu("Filer");
setBackground(Color.white);
//Her gør vi så man kan bruge F tasten for at aktivere menuen...man skal dog holde ALT nede for at aktivere menuen
filer.setMnemonic(KeyEvent.VK_F);
//Ligger Jmenu på Menubaren
menuBar.add(filer);
menuItem = new JMenuItem("Databasesti");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("database");
menuItem.addActionListener(this);
filer.add(menuItem);
//Opretter andet menupunkt
menuItem = new JMenuItem("Afslut");
// Her opretter vi en genvejstast nemlig CTRL+A for et nyt vindue
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
//Giver menuitem en actioncommand som en string..dette kan så bruges i actionperformed til at finde ud af
//hvad det var for et item man trykkede på
menuItem.setActionCommand("quit");
menuItem.addActionListener(this);
filer.add(menuItem);
return menuBar;
}
private JMenuBar createVarer()
{
varer = new JMenu("Vare");
varer.setMnemonic(KeyEvent.VK_V);
menuBar.add(varer);
menuItem = new JMenuItem("Opret/Opdater/Slet");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("varer");
menuItem.addActionListener(this);
varer.add(menuItem);
return menuBar;
}
private JMenuBar createLager()
{
lager = new JMenu("Lager");
lager.setMnemonic(KeyEvent.VK_L);
menuBar.add(lager);
menuItem = new JMenuItem("Opret/Slet");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("foderlager");
menuItem.addActionListener(this);
lager.add(menuItem);
menuItem = new JMenuItem("Grænseværdier");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("graensevaerdier");
menuItem.addActionListener(this);
lager.add(menuItem);
return menuBar;
}
private JMenuBar createStatistik()
{
stat = new JMenu("Statistik");
stat.setMnemonic(KeyEvent.VK_S);
menuBar.add(stat);
menuItem = new JMenuItem("Statistik oversigt");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("dyrlaege");
menuItem.addActionListener(this);
stat.add(menuItem);
return menuBar;
}
private JMenuBar createLeverandoer()
{
lev = new JMenu("Leverandør");
lev.setMnemonic(KeyEvent.VK_E);
menuBar.add(lev);
menuItem = new JMenuItem("Opret/Opdater/Slet");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("indtaegter");
menuItem.addActionListener(this);
lev.add(menuItem);
menuItem = new JMenuItem("Oversigt");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("udgifter");
menuItem.addActionListener(this);
lev.add(menuItem);
return menuBar;
}
private JMenuBar createFaktura()
{
fak = new JMenu("Faktura");
fak.setMnemonic(KeyEvent.VK_A);
menuBar.add(fak);
menuItem = new JMenuItem("Opret");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("oversigter");
menuItem.addActionListener(this);
fak.add(menuItem);
menuItem = new JMenuItem("Oversigt");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
menuItem.setActionCommand("oversigter");
menuItem.addActionListener(this);
fak.add(menuItem);
return menuBar;
}
public void actionPerformed(ActionEvent e)
{
//Her finder man så hvilket item der blev trykket på via den førnævnte actioncommand
if(true)
{
salg.show();
}
if ("oversigter".equals(e.getActionCommand()))
{
//createOversigterFrame();
}
else if ("Kvaeg".equals(e.getActionCommand()))
{
//createKvaegFrame();
}
else if ("database".equals(e.getActionCommand()))
{
//createGuiSalg();
}
}
private void createGuiSalg()
{
try{
salg = new Guisalg();
//salg.setVisible(true);
salg.show();
desktop.add(salg);
}catch(Exception q){}
}
/*
private void createOversigterFrame()
{
oframe = new Oversigterframe();
oframe.setVisible(true);
desktop.add(oframe);
try
{
oframe.setSelected(true);
}
catch (Exception e)
{
System.out.println("der opstod en fejl");
}
}*/
//Afslut program
private void quit()
{
System.exit(0);
}
// Returnere et ImageIcon eller Null hvis stien til billedet er forkert!!
private static ImageIcon createImageIcon(String path)
{
java.net.URL imgURL = Main.class.getResource(path);
if (imgURL != null)
{
return new ImageIcon(imgURL);
}
else
{
System.err.println("Kunne ikke finde billedet: " + path);
return null;
}
}
//opretter en popop boks
public void getError()
{
String version= javaversion.substring(0,3);
if(version.equals("1.4"))
{
JDialog.setDefaultLookAndFeelDecorated(true);
}
JOptionPane.showMessageDialog(this,"Denne funktion er ikke implementeret!","PROTOTYPE FEJL!",JOptionPane.ERROR_MESSAGE);
}
public static void main(String[] args)
{
//Opretter vinduet
Main frame = new Main();
frame.addWindowListener(new WindowAdapter() {
public void windowOpened(WindowEvent event) {
frame.requestFocus();
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//viser vinduet
frame.setVisible(true);
//frame.getKritiskeVaerdier();
}
}