Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как присвоить имя окну? что-то я туплю :) 
V
    Опции темы
Warchief
Дата 20.12.2007, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 24.5.2007

Репутация: нет
Всего: 3



Ребят есть такой код:

Собственно код рисует сначала прогрессбар и инициализирует компоненты программы. Когда все компоненты инициализированны, прогрессбар убурается с помощью dispose, и выполняется pack() после этого с помощью строки       EventQueue.invokeLater(runner);
вызывается главное окно проги. что-то я туплю и не могу присвоить имя главному окну.  smile  Помогите пожалуйста  smile 

Добавлено:
Всё разобрался нафик, добавил this.setTitle("title"). Как и ожидалось, тупил как обычно

но всё же я что-то не до конца понимаю как работает строка EventQueue.invokeLater(runner); Объясните пожалуйста!!

Код



import util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
//import javax.swing.event.*;
import javax.swing.table.*;
import java.io.*;
//import java.util.*;
//import javax.swing.border.*;

public class FileManager extends JFrame implements ActionListener {
    private JLabel leftPath = new JLabel("---");
    private JLabel rightPath = new JLabel("---");
    
    private CustomTable leftTable;
    private CustomTable rightTable;
    
    private JComboBox leftRoots; //
    private JComboBox rightRoots;
    
    /** Creates a new instance of FileManager */
    public FileManager() {
        JFrame frame = new JFrame("nag");
        frame.setUndecorated(false);
        
        JLabel lbl1 = new JLabel("yafm"); //
        lbl1.setOpaque(true);
        lbl1.setBackground(new Color(250, 220, 80));
        lbl1.setForeground(Color.RED);// textfarbe
        lbl1.setHorizontalAlignment(JLabel.CENTER);
        lbl1.setVerticalAlignment(JLabel.CENTER);
        lbl1.setFont(new Font("Arial", Font.BOLD, 36));
        
        JLabel lbl2 = new JLabel("loading...");
        lbl2.setOpaque(true);
        lbl2.setBackground(Color.WHITE);
        lbl2.setForeground(Color.BLUE);
        lbl2.setVerticalAlignment(JLabel.BOTTOM);
        lbl2.setHorizontalAlignment(JLabel.CENTER);
        
        JProgressBar pb = new JProgressBar(1, 44);
        pb.setForeground(new Color(120, 50, 200));
        
        Container preCont = frame.getContentPane();
        preCont.setLayout(new BorderLayout());
      
        
        JPanel jp = new JPanel();
        jp.setLayout(new BorderLayout());
        jp.add(lbl1, BorderLayout.CENTER);
        jp.add(lbl2, BorderLayout.SOUTH);
        
        preCont.add(jp, BorderLayout.CENTER);
        preCont.add(pb, BorderLayout.SOUTH);
        
        frame.setSize(new Dimension(300, 200));
        frame.setResizable(false);
        frame.setLocationRelativeTo(this);
        frame.setVisible(true);
        
        pb.setValue(1);
        leftRoots = new JComboBox(new RootsModel());
        pb.setValue(2);
        leftRoots.addItemListener(new RootsListener());
        pb.setValue(3);
        rightRoots = new JComboBox(new RootsModel());
        pb.setValue(4);
        rightRoots.addItemListener(new RootsListener());
        pb.setValue(5);
        FSTableModel leftModel = new FSTableModel(new File("/"));
        pb.setValue(6);
        leftTable = new CustomTable(new TableSorter(leftModel));
        pb.setValue(7);
        FSTableModel rightModel = new FSTableModel(new File("/"));
        pb.setValue(8);
        rightTable = new CustomTable(new TableSorter(rightModel));
        pb.setValue(9);
        leftTable.setName("leftTable");
        pb.setValue(10);
        rightTable.setName("rightTable");
        
        pb.setValue(11);
        Container con = getContentPane();
        pb.setValue(12);
        con.setLayout(new BorderLayout());
        pb.setValue(13);
        JPanel topPane = new JPanel();
        pb.setValue(14);
        topPane.setLayout(new BorderLayout());
        pb.setValue(15);
        MainToolbar mt = new MainToolbar();
        pb.setValue(16);
        mt.addActionListener(this);
        pb.setValue(17);
        topPane.add(mt);
        pb.setValue(18);
        JPanel leftPane = new JPanel();
        pb.setValue(19);
        leftPane.setLayout(new BorderLayout());
        pb.setValue(20);
        JPanel leftTopPane = new JPanel();
        pb.setValue(21);
        leftTopPane.setLayout(new BorderLayout());
        pb.setValue(22);
        leftTopPane.add(leftRoots, BorderLayout.WEST);
        pb.setValue(23);
        leftTopPane.add(leftPath, BorderLayout.CENTER);
        pb.setValue(24);
        leftPane.add(leftTopPane, BorderLayout.NORTH);
        pb.setValue(25);
        leftPane.add(new JScrollPane(leftTable), BorderLayout.CENTER);
        pb.setValue(26);
        JPanel rightPane = new JPanel();
        pb.setValue(27);
        rightPane.setLayout(new BorderLayout());
        pb.setValue(28);
        JPanel rightTopPane = new JPanel();
        pb.setValue(29);
        rightTopPane.setLayout(new BorderLayout());
        pb.setValue(30);
        rightTopPane.add(rightRoots, BorderLayout.WEST);
        pb.setValue(31);
        rightTopPane.add(rightPath, BorderLayout.CENTER);
        
        pb.setValue(32);
        rightPane.add(rightTopPane, BorderLayout.NORTH);
        pb.setValue(33);
        rightPane.add(new JScrollPane(rightTable), BorderLayout.CENTER);
        pb.setValue(34);
        JPanel bottomPane = new JPanel();
        pb.setValue(35);
        bottomPane.setLayout(new BorderLayout());
        pb.setValue(36);
        JSplitPane middlePane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPane, rightPane);
        pb.setValue(37);
        middlePane.setOneTouchExpandable(true);
        pb.setValue(38);
        con.add(topPane, BorderLayout.NORTH);
        
        pb.setValue(39);
        con.add(middlePane, BorderLayout.CENTER);
        pb.setValue(40);
        con.add(bottomPane, BorderLayout.SOUTH);
        pb.setValue(41);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        pb.setValue(42);
        
        pack();
        pb.setValue(43);
        Runnable runner = new FrameShower(this);
        pb.setValue(44);
        
       frame.dispose();
        
        EventQueue.invokeLater(runner);
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       new FileManager();
       
    }
    
    public class TableKeyListener implements KeyListener {
        
        public void keyPressed(KeyEvent e) {
            JTable activeTable = ((JTable)(e.getSource()));
            int[] selectedRows;
            selectedRows = activeTable.getSelectedRows();
            int keyCode = e.getKeyCode();
            File root = (File)(activeTable.getModel().getValueAt(0,-1));
            File parent = root.getParentFile();
            
            JLabel activePath;
            if (activeTable.getName().equals("leftTable"))
                activePath = leftPath;
            else activePath = rightPath;
            
            if (keyCode == KeyEvent.VK_ENTER) {
                int selectedRow = activeTable.getSelectedRow();
                if (selectedRow != -1) {
                    Object mf = activeTable.getModel().getValueAt(selectedRow, 0);
                    if (((MyFile)mf).isDirectory()) {
                        TableSorter ts = new TableSorter(new FSTableModel((MyFile)mf));
                        activeTable.setModel(ts);
                        ts.addMouseListenerToHeaderInTable(activeTable);
                        ((CustomTable)activeTable).setTableRenderer(activeTable, new FSTableCellRenderer());
                    } else {
                        Runtime r = Runtime.getRuntime();
                        try {
                        r.exec(((MyFile)mf).getAbsolutePath());
                        } catch (IOException ioe) {
                            System.out.println(ioe);
                            ioe.printStackTrace();
                        }
                    }
                    activePath.setText(((MyFile)mf).getAbsolutePath());
                }
            } else if (keyCode == KeyEvent.VK_BACK_SPACE) {
                
                if (parent != null) {
                    TableSorter ts = new TableSorter(new FSTableModel(new MyFile(parent)));
                    activeTable.setModel(ts);
                    ts.addMouseListenerToHeaderInTable(activeTable);
                    ((CustomTable)activeTable).setTableRenderer(activeTable, new FSTableCellRenderer());
                    activePath.setText(parent.getAbsolutePath());
                }
                
            } else if (keyCode == KeyEvent.VK_F5) {
                File[] sourceFilesList;
                File targetPath = null;
                JTable targetTable = null;
                if (selectedRows != null) {
                    if (activeTable.getName().equals("leftTable")) {
                        targetTable = rightTable;
                    } else {
                        targetTable = leftTable;
                    }
                    targetPath = (File)(targetTable.getModel().getValueAt(0,-1));
                    sourceFilesList = new File[selectedRows.length];
                    for (int i = 0; i < selectedRows.length; i++) {
                        sourceFilesList[i] = (File)(activeTable.getValueAt(selectedRows[i], 0));
                    }
                    new FileCopy(sourceFilesList, targetPath, targetTable);
                }
                TableSorter ts = new TableSorter(new FSTableModel(targetPath));
                targetTable.setModel(ts);
                ts.addMouseListenerToHeaderInTable(targetTable);
                ((CustomTable)targetTable).setTableRenderer(targetTable, new FSTableCellRenderer());
            } else if (keyCode == KeyEvent.VK_F6) {
                File[] sourceFilesList;
                File targetPath = null;
                JTable targetTable = null;
                if (selectedRows != null) {
                    if (activeTable.getName().equals("leftTable")) {
                        targetTable = rightTable;
                    } else {
                        targetTable = leftTable;
                    }
                    targetPath = (File)(targetTable.getModel().getValueAt(0,-1));
                    sourceFilesList = new File[selectedRows.length];
                    for (int i = 0; i < selectedRows.length; i++) {
                        sourceFilesList[i] = (File)(activeTable.getValueAt(selectedRows[i], 0));
                    }
                    new FileMove(sourceFilesList, targetPath, targetTable);
                }
                TableSorter ts = new TableSorter(new FSTableModel(targetPath));
                targetTable.setModel(ts);
                ts.addMouseListenerToHeaderInTable(targetTable);
                ((CustomTable)targetTable).setTableRenderer(targetTable, new FSTableCellRenderer());
                
                TableSorter ts2 = new TableSorter(new FSTableModel(root));
                activeTable.setModel(ts2);
                ts2.addMouseListenerToHeaderInTable(activeTable);
                ((CustomTable)activeTable).setTableRenderer(activeTable, new FSTableCellRenderer());
            } else if (keyCode == KeyEvent.VK_F2) {
                File[] sourceFilesList;
                File targetPath;
                JTable targetTable = null;
                if (selectedRows != null) {
                    if (activeTable.getName().equals("leftTable")) {
                        targetTable = rightTable;
                    } else {
                        targetTable = leftTable;
                    }
                    sourceFilesList = new File[selectedRows.length];
                    for (int i = 0; i < selectedRows.length; i++) {
                        sourceFilesList[i] = (File)(activeTable.getValueAt(selectedRows[i], 0));
                    }
                    new FileRename(sourceFilesList);
                }
                TableSorter ts = new TableSorter(new FSTableModel(root));
                activeTable.setModel(ts);
                ts.addMouseListenerToHeaderInTable(activeTable);
                ((CustomTable)activeTable).setTableRenderer(activeTable, new FSTableCellRenderer());
            } else if (keyCode == KeyEvent.VK_F7) {
                new MakeDir(root);
                TableSorter ts = new TableSorter(new FSTableModel(root));
                activeTable.setModel(ts);
                ts.addMouseListenerToHeaderInTable(activeTable);
                ((CustomTable)activeTable).setTableRenderer(activeTable, new FSTableCellRenderer());
            } else if (keyCode == KeyEvent.VK_F8) {
                File[] sourceFilesList;
                if (selectedRows != null) {
                    sourceFilesList = new File[selectedRows.length];
                    for (int i = 0; i < selectedRows.length; i++) {
                        sourceFilesList[i] = (File)(activeTable.getValueAt(selectedRows[i], 0));
                    }
                    new FileDelete(sourceFilesList);
                    new FolderDelete(sourceFilesList);
                }
                TableSorter ts = new TableSorter(new FSTableModel(root));
                activeTable.setModel(ts);
                ts.addMouseListenerToHeaderInTable(activeTable);
                ((CustomTable)activeTable).setTableRenderer(activeTable, new FSTableCellRenderer());
                
            }
            
          
        }
       
        public void keyReleased(KeyEvent e) {
        }
        
        public void keyTyped(KeyEvent e) {
        }
        
    }
    
    public class RootsListener implements ItemListener {
        JComboBox activeComboBox;
        public void itemStateChanged(ItemEvent e) {
            activeComboBox = (JComboBox)(e.getSource());
                if (activeComboBox.equals(leftRoots)) {
                    TableSorter ts = new TableSorter(new FSTableModel((File)(leftRoots.getSelectedItem())));
                    leftTable.setModel(ts);
                    ts.addMouseListenerToHeaderInTable(leftTable);
                    ((CustomTable)leftTable).setTableRenderer(leftTable, new FSTableCellRenderer());
                    leftPath.setText("---");
                } else {
                    TableSorter ts = new TableSorter(new FSTableModel((File)(rightRoots.getSelectedItem())));
                    rightTable.setModel(ts);
                    ts.addMouseListenerToHeaderInTable(rightTable);
                    ((CustomTable)rightTable).setTableRenderer(rightTable, new FSTableCellRenderer());
                    rightPath.setText("---");}
                }
                
                
        public void keyReleased(KeyEvent e) {
        }
        
        public void keyTyped(KeyEvent e) {
        }
                
               
        
    }
    
    public class CustomTable extends JTable {
        
        public void setTableRenderer(JTable table, TableCellRenderer tcr) {
            int columnCount = table.getColumnCount();
            String columnName = "";
            for (int i = 0; i < columnCount; i++) {
                columnName = table.getColumnName(i);
                table.getColumn(columnName).setCellRenderer(tcr);
            }
        }
        
        public CustomTable(TableSorter ts) {
            super(ts);
            ts.addMouseListenerToHeaderInTable(this);
            this.addKeyListener(new TableKeyListener());
            this.setDoubleBuffered(true);
            this.setIntercellSpacing(new Dimension(1, 1));
            this.setShowGrid(true);
            setTableRenderer(this, new FSTableCellRenderer());
        }
        
    }
    
    public void actionPerformed(ActionEvent ae) {
    }
    
}


Это сообщение отредактировал(а) Warchief - 20.12.2007, 05:02
PM MAIL ICQ Skype   Вверх
powerOn
Дата 20.12.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Цитата(Warchief @  20.12.2007,  03:19 Найти цитируемый пост)
но всё же я что-то не до конца понимаю как работает строка EventQueue.invokeLater(runner); Объясните пожалуйста!!

invokeLater уже много раз обсуждалось - используй поиск!


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.