Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Додаток Г. Програмний код класу GUI ⇐ ПредыдущаяСтр 4 из 4
import javax.swing.*; import java.awt.*; import java.net.*; import java.io.*; import java.util.*; import java.awt.image.BufferedImage; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.imageio.ImageIO; import javax.swing.table.DefaultTableModel; import java.text.SimpleDateFormat; import org.swixml.SwingEngine; import static org.math.array.DoubleArray.*; public class GUI { private static XMLInterface xml; private static Controller c; private static int [] uplimits,downlimits; private JFrame mainDialog,aboutDialog,graphDialog,zadDialog; private JPanel graphPanel; private JTextPane about_txtDescr; private JLabel picLabel; private JButton btn_start, btn_contol, btn_graph, btn_z1, btn_about; private JButton cmdChangeMode, cmdShowGraph; private JProgressBar pry1, pry2, pru1, pru2; private JLabel lby1, lby2; private JSpinner spu1, spu2, spz1,spz2; private JTable logTable; private DefaultTableModel tablemodel; private javax.swing.Timer timer; private static final String MAIN_DESCRIPTOR="forms/main_window.xml"; private static final String ABOUT_DESCRIPTOR="forms/about.xml"; private static final String GRAPH_DESCRIPTOR="forms/graph.xml"; private static final String ZAD_DESCRIPTOR="forms/zad_window.xml"; private static final String SCHEME_FILE="img/tech_scheme.png"; private static final String HTML_FILE="docs/description.html"; private static final String CONTENT_TYPE="text/html; charset=utf-8"; private SwingEngine swix=new SwingEngine (this); public void logEvent (String msgtype, String msgtext) { String TIME_FORMAT_NOW = "HH: mm: ss"; String DATE_FORMAT_NOW = "dd. MM. yy"; Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf1 = new SimpleDateFormat(TIME_FORMAT_NOW); SimpleDateFormat sdf2 = new SimpleDateFormat(TIME_FORMAT_NOW); String[] data = {sdf1.format (cal.getTime()), sdf2.format (cal.getTime()), msgtype, msgtext}; tablemodel.addRow (data); }
public void initMainDialog() throws Exception { try { mainDialog=(JFrame)swix.render(MAIN_DESCRIPTOR); mainDialog.setResizable(false); final Toolkit toolkit=Toolkit.getDefaultToolkit(); final Dimension screenSize=toolkit.getScreenSize(); final int x=(screenSize.width-mainDialog.getWidth())/2; final int y=(screenSize.height-mainDialog.getHeight())/2; mainDialog.setLocation(x,y); BufferedImage myPicture=ImageIO.read(new File(SCHEME_FILE)); picLabel.setIcon(new ImageIcon(myPicture)); SpinnerModel sm1=new SpinnerNumberModel(70,0,100,1); SpinnerModel sm2=new SpinnerNumberModel(70,0,100,1); spu1.setModel(sm1); spu2.setModel(sm2); tablemodel = new DefaultTableModel () { @Override public boolean isCellEditable (int row, int column) { return false; }; }; tablemodel.addColumn("Час"); tablemodel.addColumn("Дата"); tablemodel.addColumn("Тип"); tablemodel.addColumn("Повідомлення"); logTable.setModel(tablemodel); logTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); logTable.getColumnModel().getColumn(0).setMaxWidth(80); logTable.getColumnModel().getColumn(0).setMinWidth(80); logTable.getColumnModel().getColumn(0).setWidth(80); logTable.getColumnModel().getColumn(0).setPreferredWidth(80); logTable.getColumnModel().getColumn(1).setMaxWidth(80); logTable.getColumnModel().getColumn(1).setMinWidth(80); logTable.getColumnModel().getColumn(1).setWidth(80); logTable.getColumnModel().getColumn(1).setPreferredWidth(80); logTable.getColumnModel().getColumn(2).setMaxWidth(120); logTable.getColumnModel().getColumn(2).setMinWidth(120); logTable.getColumnModel().getColumn(2).setWidth(120); logTable.getColumnModel().getColumn(2).setPreferredWidth(120); } catch (Exception e) { System.out.println ("Error in main");
e.printStackTrace(); } }
public void initAboutDialog() throws Exception { aboutDialog=(JFrame)swix.render(ABOUT_DESCRIPTOR); aboutDialog.setResizable(false); aboutDialog.setAlwaysOnTop(true); final Toolkit toolkit=Toolkit.getDefaultToolkit(); final Dimension screenSize=toolkit.getScreenSize(); final int x=(screenSize.width-aboutDialog.getWidth())/2; final int y=(screenSize.height-aboutDialog.getHeight())/2; aboutDialog.setLocation(x,y); Stringfilename=this.getClass().getClassLoader().getResource(HTML_FILE).toString(); about_txtDescr.setContentType(CONTENT_TYPE); about_txtDescr.setPage(new URL(filename)); } public void initZadDialog() throws Exception { zadDialog=(JFrame)swix.render(ZAD_DESCRIPTOR); zadDialog.setResizable(false); zadDialog.setAlwaysOnTop(true); final Toolkit toolkit=Toolkit.getDefaultToolkit(); final Dimension screenSize=toolkit.getScreenSize(); final int x=(screenSize.width-zadDialog.getWidth())/2; final int y=(screenSize.height-zadDialog.getHeight())/2; zadDialog.setLocation(x,y); double ynom[]=XMLInterface.getYnom(); int uplimits[]=XMLInterface.getUplimits(); int downlimits[]=XMLInterface.getDownlimits(); SpinnerModel sm1=new SpinnerNumberModel (ynom[0],downlimits[0], uplimits[0],1); SpinnerModel sm2=new SpinnerNumberModel (ynom[1],downlimits[1], uplimits[1],1); spz1.setModel(sm1); spz2.setModel(sm2); } public GUI() { try { initAboutDialog(); initMainDialog(); initPlotDialog(); initZadDialog(); mainDialog.setVisible(true); javax.swing.Timer t= new javax.swing.Timer(1000,new ClockListener()); t.start(); logEvent("Управління","процесзапущено"); logEvent("Управління","Контролервключено"); } catch(Exception e) { System.out.println ("error in gui"); e.printStackTrace(); } } public void initPlotDialog()throws Exception { int uplimits[]=XMLInterface.getUplimits(); int downlimits[]=XMLInterface.getDownlimits(); graphDialog=(JFrame) swix.render(GRAPH_DESCRIPTOR); graphDialog.setContentPane(Graph.createGraphPanel());//(downlimits[0], uplimits[0],downlimits[1], uplimits[1])); } public Action AC_MANUAL=new AbstractAction() { public void actionPerformed(ActionEvent e) { if(!c.getManual()) logEvent("Управление","Контроллеротключен"); else logEvent("Управление","Контроллер включен"); c.setManual(!c.getManual()); if(c.getManual()) cmdChangeMode.setText("включитьконтроллер"); else cmdChangeMode.setText("отключитьконтроллер"); } }; public Action AC_CLOSE_ABOUTDIALOG=new AbstractAction() { public void actionPerformed(ActionEvent e) { aboutDialog.setVisible(false); } }; public Action AC_ABOUT=new AbstractAction() { public void actionPerformed(ActionEvent e) { aboutDialog.setVisible(true); } }; public Action AC_GRAPH=new AbstractAction() { public void actionPerformed(ActionEvent e) { graphDialog.setVisible(true); } }; public Action AC_ZAD=new AbstractAction() { public void actionPerformed(ActionEvent e) { zadDialog.setVisible(true); } }; public Action AC_WORK=new AbstractAction() { public void actionPerformed(ActionEvent e) { if(c.getWork()) logEvent ("Управлiння","Процесзупинений"); else logEvent("Управлiння","Процес запущено"); c.setWork(!c.getWork()); } }; public Action AC_SETZ=new AbstractAction() { public void actionPerformed(ActionEvent e) { double ynom[]=XMLInterface.getYnom(); c.setZ(Double.valueOf(spz1.getValue().toString())-ynom[0],0);
c.setZ(Double.valueOf(spz2.getValue().toString())-ynom[1],1); zadDialog.setVisible(false); } }; class ClockListener implements ActionListener { public void actionPerformed(ActionEvent e) { if(c.getWork()) { double ynom[]=XMLInterface.getYnom(); double unom[]=XMLInterface.getUnom(); int uplimits[]=XMLInterface.getUplimits(); int downlimits[]=XMLInterface.getDownlimits(); lby1.setText(String.format("%.2f",c.getY(0)+ynom[0])); lby2.setText(String.format("%.2f",c.getY(1)+ynom[1])); pry1.setMaximum(uplimits[0]); pry1.setMinimum(downlimits[0]); pry1.setValue((int)(c.getY(0)+ynom[0])); pry2.setMaximum(uplimits[1]); pry2.setMinimum(downlimits[1]); pry2.setValue((int)(c.getY(1)+ynom[1])); Graph.addY(c.getY(0)+ynom[0],c.getY(1)+ynom[1]); if((c.getY(0)+ynom[0])>uplimits[0]||(c.getY(0)+ynom[0])<downlimits[0]) { if(pry1.isVisible())logEvent("Аварийное","Параметр у1 вышел за регламент"); pry1.setVisible(false); lby1.setForeground(Color.red); } else { if(!pry1.isVisible())logEvent("Аварийное","Параметру1 вернулсяврегламент"); pry1.setVisible(true); lby1.setForeground(Color.black); pry1.setMaximum(uplimits[0]); pry1.setMinimum(downlimits[0]); pry1.setValue((int)(c.getY(0)+ynom[0])); } if(Controller.getManual()) { spu1.setEnabled(false); c.setU(Double.valueOf(spu1.getValue().toString())-unom[0],0); spu2.setEnabled(false); c.setU(Double.valueOf(spu2.getValue().toString())-unom[1],1); } else { spu1.setEnabled(false); spu2.setEnabled(false); spu1.setValue(c.getU(0)+unom[0]); spu2.setValue(c.getU(1)+unom[1]);
} } } } }
|
||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 148; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.193.232 (0.022 с.) |