📄 periodictablepanel.java
字号:
/* * $RCSfile$ * $Author: egonw $ * $Date: 2007-04-16 10:40:19 +0200 (Mon, 16 Apr 2007) $ * $Revision: 8201 $ * * Copyright (C) 2004 The Chemistry Development Kit (CDK) Project * * Contact: cdk-devel@lists.sourceforge.net * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */package org.openscience.cdk.applications.swing;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.net.URL;import java.util.EventObject;import java.util.Vector;import javax.swing.AbstractAction;import javax.swing.AbstractButton;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JLayeredPane;import javax.swing.JPanel;import javax.swing.border.BevelBorder;import javax.swing.border.EmptyBorder;import org.openscience.cdk.Element;import org.openscience.cdk.PeriodicTableElement;import org.openscience.cdk.config.ElementPTFactory;import org.openscience.cdk.event.ICDKChangeListener;import org.openscience.cdk.tools.LoggingTool;/** * JPanel version of the periodic system. * * @author Egon Willighagen * @author Geert Josten * @author Miguel Rojas * @cdk.created May 9, 2005 * @cdk.module applications * @cdk.require swing */public class PeriodicTablePanel extends JPanel{ private static final long serialVersionUID = -2539418347261469740L; Vector listeners = null; PeriodicTableElement selectedElement = null; private JPanel panel; //private JLabel label; private JLayeredPane layeredPane; private ElementPTFactory factory; private LoggingTool logger; public static int APPLICATION = 0; /*default*/ public static int JCP = 1; /* * set if the button should be written with html - which takes * too long time for loading * APPLICATION = with html * JCP = default */ private int controlViewerButton; /** * Constructor of the PeriodicTablePanel object */ public PeriodicTablePanel() { super(); setLayout( new BorderLayout()); try { factory = ElementPTFactory.getInstance(); } catch (Exception ex1) { logger.error(ex1.getMessage()); logger.debug(ex1); } layeredPane = new JLayeredPane(); layeredPane.setPreferredSize(new Dimension(611, 575)); layeredPane.setBorder(BorderFactory.createTitledBorder( "Periodic Table for CDK")); JPanel tp = PTPanel(); tp.setBounds(8,85,600, 480); JButton button = new JButton("Reload"); button.setVerticalTextPosition(AbstractButton.BOTTOM); button.setHorizontalTextPosition(AbstractButton.CENTER); button.setMnemonic(KeyEvent.VK_R); button.setToolTipText("Click this button to back to PeriodicTable."); button.setFont(new Font("Times-Roman",Font.BOLD, 10)); button.setBounds(510, 20, 90, 20); button.addActionListener( new BackAction() ); panel = CreateLabelProperties(null); layeredPane.add(button, new Integer(1)); layeredPane.add(tp, new Integer(0)); layeredPane.add(panel, new Integer(1)); add(layeredPane); } private JPanel PTPanel() { controlViewerButton = PeriodicTablePanel.JCP; JPanel panel = new JPanel(); listeners = new Vector(); panel.setLayout(new GridLayout(0, 18)); //-------------------------------- JButton butt = new JButton("IA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); //-------------------------------- for (int i = 0; i < 16; i++) { Box.createHorizontalGlue(); panel.add(Box.createHorizontalGlue()); } butt = new JButton("VIIIA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); panel.add(createButton("H")); butt = new JButton("IIA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); for (int i = 0; i < 10; i++) { panel.add(Box.createHorizontalGlue()); } butt = new JButton("IIIA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VIA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VIA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VIIA"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); // panel.add(createButton("He")); panel.add(createButton("Li")); panel.add(createButton("Be")); for (int i = 0; i < 10; i++) { panel.add(Box.createHorizontalGlue()); } //no metall panel.add(createButton("B")); panel.add(createButton("C")); panel.add(createButton("N")); panel.add(createButton("O")); panel.add(createButton("F")); // panel.add(createButton("Ne")); panel.add(createButton("Na")); panel.add(createButton("Mg")); butt = new JButton("IIIB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("IVB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VIB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VIIB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("--"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("VIIIB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("--"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("IB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); butt = new JButton("IIB"); butt.setBorder(new EmptyBorder(2,2,2,2)); panel.add(butt); //no metall panel.add(createButton("Al")); panel.add(createButton("Si")); panel.add(createButton("P")); panel.add(createButton("S")); panel.add(createButton("Cl")); // panel.add(createButton("Ar")); panel.add(createButton("K")); panel.add(createButton("Ca")); //transition panel.add(createButton("Sc")); panel.add(createButton("Ti")); panel.add(createButton("V")); panel.add(createButton("Cr")); panel.add(createButton("Mn")); panel.add(createButton("Fe")); panel.add(createButton("Co")); panel.add(createButton("Ni")); panel.add(createButton("Cu")); panel.add(createButton("Zn")); //no metall panel.add(createButton("Ga")); panel.add(createButton("Ge")); panel.add(createButton("As")); panel.add(createButton("Se")); panel.add(createButton("Br")); // panel.add(createButton("Kr")); panel.add(createButton("Rb")); panel.add(createButton("Sr")); //transition panel.add(createButton("Y")); panel.add(createButton("Zr")); panel.add(createButton("Nb")); panel.add(createButton("Mo")); panel.add(createButton("Tc")); panel.add(createButton("Ru")); panel.add( createButton("Rh")); panel.add(createButton("Pd")); panel.add(createButton("Ag")); panel.add(createButton("Cd")); //no metall panel.add(createButton("In")); panel.add(createButton("Sn")); panel.add(createButton("Sb")); panel.add(createButton("Te")); panel.add(createButton("I")); // panel.add(createButton("Xe")); panel.add(createButton("Cs")); panel.add(createButton("Ba")); //transition panel.add(createButton("La")); panel.add(createButton("Hf")); panel.add(createButton("Ta")); panel.add(createButton("W")); panel.add(createButton("Re")); panel.add(createButton("Os")); panel.add(createButton("Ir")); panel.add(createButton("Pt")); panel.add(createButton("Au")); panel.add(createButton("Hg")); //no metall panel.add(createButton("Tl")); panel.add(createButton("Pb")); panel.add(createButton("Bi")); panel.add(createButton("Po")); panel.add(createButton("At")); // panel.add(createButton("Rn")); panel.add(createButton("Fr")); panel.add(createButton("Ra")); //transition panel.add(createButton("Ac")); panel.add(createButton("Rf")); panel.add(createButton("Db")); panel.add(createButton("Sg")); panel.add(createButton("Bh")); panel.add(createButton("Hs")); panel.add(createButton("Mt")); panel.add(createButton("Ds")); panel.add(createButton("Rg")); for (int i = 0; i < 9; i++) { panel.add(Box.createHorizontalGlue()); } //Acti panel.add(createButton("Ce")); panel.add(createButton("Pr")); panel.add(createButton("Nd")); panel.add(createButton("Pm")); panel.add(createButton("Sm")); panel.add(createButton("Eu")); panel.add(createButton("Gd")); panel.add(createButton("Tb")); panel.add(createButton("Dy")); panel.add(createButton("Ho")); panel.add(createButton("Er")); panel.add(createButton("Tm")); panel.add(createButton("Yb")); panel.add(createButton("Lu")); for (int i = 0; i < 4; i++) { panel.add(Box.createHorizontalGlue()); } //Lacti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -