📄 java2demo.java
字号:
public void itemStateChanged(ItemEvent e) { if (e.getSource().equals(controlsCB)) { boolean newVisibility = !controls.isVisible(); controls.setVisible(newVisibility); for (Component cmp : controls.texturechooser.getComponents()) { cmp.setVisible(newVisibility); } } else if (e.getSource().equals(memoryCB)) { if (memorymonitor.isVisible()) { memorymonitor.setVisible(false); memorymonitor.surf.setVisible(false); memorymonitor.surf.stop(); } else { memorymonitor.setVisible(true); memorymonitor.surf.setVisible(true); memorymonitor.surf.start(); } } else if (e.getSource().equals(perfCB)) { if (performancemonitor.isVisible()) { performancemonitor.setVisible(false); performancemonitor.surf.setVisible(false); performancemonitor.surf.stop(); } else { performancemonitor.setVisible(true); performancemonitor.surf.setVisible(true); performancemonitor.surf.start(); } } else if (e.getSource().equals(ccthreadCB)) { CustomControlsContext.State state = ccthreadCB.isSelected() ? START : STOP; if (tabbedPane.getSelectedIndex() != 0) { JPanel p = group[tabbedPane.getSelectedIndex()-1].getPanel(); for (int i = 0; i < p.getComponentCount(); i++) { DemoPanel dp = (DemoPanel) p.getComponent(i); if (dp.ccc != null) { dp.ccc.handleThread(state); } } } } revalidate(); } public void start() { if (tabbedPane.getSelectedIndex() == 0) { intro.start(); } else { group[tabbedPane.getSelectedIndex()-1].setup(false); if (memorymonitor.surf.thread == null && memoryCB.getState()) { memorymonitor.surf.start(); } if (performancemonitor.surf.thread == null && perfCB.getState()) { performancemonitor.surf.start(); } } } public void stop() { if (tabbedPane.getSelectedIndex() == 0) { intro.stop(); } else { memorymonitor.surf.stop(); performancemonitor.surf.stop(); int i = tabbedPane.getSelectedIndex()-1; group[i].shutDown(group[i].getPanel()); } } static void addToGridBag(JPanel panel, Component comp, int x, int y, int w, int h, double weightx, double weighty) { GridBagLayout gbl = (GridBagLayout) panel.getLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.gridx = x; c.gridy = y; c.gridwidth = w; c.gridheight = h; c.weightx = weightx; c.weighty = weighty; panel.add(comp); gbl.setConstraints(comp, c); } /** * The Icon for the Intro tab. */ static class J2DIcon implements Icon { private static Color myBlue = new Color(94, 105, 176); private static Color myBlack = new Color(20, 20, 20); private static Font font = new Font("serif", Font.BOLD, 12); private FontRenderContext frc = new FontRenderContext(null,true,true); private TextLayout tl = new TextLayout("Java2D", font, frc); public void paintIcon(Component c, Graphics g, int x, int y ) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setFont(font); if (tabbedPane.getSelectedIndex() == 0) { g2.setColor(myBlue); } else { g2.setColor(myBlack); } tl.draw(g2, x, y + 15); } public int getIconWidth() { return 40; } public int getIconHeight() { return 22; } } public static void main(String args[]) { for (int i = 0; i < args.length; i++) { if (args[i].startsWith("-h") || args[i].startsWith("-help")) { String s = "\njava -jar Java2Demo.jar -runs=5 -delay=5 -screen=5 " + "-antialias=true -rendering=true -texture=true " + "-composite=true -verbose -print -columns=3 " + "-buffers=5,10 -ccthread -zoom -maxscreen \n"; System.out.println(s); s = " -runs=5 Number of runs to execute\n" + " -delay=5 Sleep amount between tabs\n" + " -antialias= true or false for antialiasing\n" + " -rendering= true or false for quality or speed\n" + " -texture= true or false for texturing\n" + " -composite= true or false for compositing\n" + " -verbose output Surface graphic states \n" + " -print during run print the Surface, " + "use the Default Printer\n" + " -columns=3 # of columns to use in clone layout \n" + " -screen=3 demos all use this screen type \n" + " -buffers=5,10 during run - clone to see screens " + "five through ten\n" + " -ccthread Invoke the Custom Controls Thread \n" + " -zoom mouseClick on surface for zoom in \n" + " -maxscreen take up the entire monitor screen \n"; System.out.println(s); s = "Examples : \n" + " Print all of the demos : \n" + " java -jar Java2Demo.jar -runs=1 -delay=60 -print \n" + " Run zoomed in with custom control thread \n" + " java -jar Java2Demo.jar -runs=10 -zoom -ccthread\n"; System.out.println(s); System.exit(0); } else if (args[i].startsWith("-delay=")) { String s = args[i].substring(args[i].indexOf('=')+1); RunWindow.delay = Integer.parseInt(s); } } JFrame frame = new JFrame("Java 2D(TM) Demo"); frame.getAccessibleContext().setAccessibleDescription("A sample application to demonstrate Java2D features"); int WIDTH = 400, HEIGHT = 200; frame.setSize(WIDTH, HEIGHT); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation(d.width/2 - WIDTH/2, d.height/2 - HEIGHT/2); frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} public void windowDeiconified(WindowEvent e) { if (demo != null) { demo.start(); } } public void windowIconified(WindowEvent e) { if (demo != null) { demo.stop(); } } }); JOptionPane.setRootFrame(frame); JPanel progressPanel = new JPanel() { public Insets getInsets() { return new Insets(40,30,20,30); } }; progressPanel.setLayout(new BoxLayout(progressPanel, BoxLayout.Y_AXIS)); frame.getContentPane().add(progressPanel, BorderLayout.CENTER); Dimension labelSize = new Dimension(400, 20); progressLabel = new JLabel("Loading, please wait..."); progressLabel.setAlignmentX(CENTER_ALIGNMENT); progressLabel.setMaximumSize(labelSize); progressLabel.setPreferredSize(labelSize); progressPanel.add(progressLabel); progressPanel.add(Box.createRigidArea(new Dimension(1,20))); progressBar = new JProgressBar(); progressBar.setStringPainted(true); progressLabel.setLabelFor(progressBar); progressBar.setAlignmentX(CENTER_ALIGNMENT); progressBar.setMinimum(0); progressBar.setValue(0); progressBar.getAccessibleContext().setAccessibleName("Java2D loading progress"); progressPanel.add(progressBar); frame.setVisible(true); demo = new Java2Demo(); frame.getContentPane().removeAll(); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(demo, BorderLayout.CENTER); WIDTH = 730; HEIGHT = 570; frame.setLocation(d.width/2 - WIDTH/2, d.height/2 - HEIGHT/2); frame.setSize(WIDTH, HEIGHT); frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); for (int i = 0; i < args.length; i++) { String arg = args[i]; String s = arg.substring(arg.indexOf('=')+1); if (arg.startsWith("-runs=")) { RunWindow.numRuns = Integer.parseInt(s); RunWindow.exit = true; demo.createRunWindow(); } else if (arg.startsWith("-screen=")) { demo.controls.screenCombo.setSelectedIndex(Integer.parseInt(s)); } else if (arg.startsWith("-antialias=")) { demo.controls.aliasCB.setSelected(s.endsWith("true")); } else if (arg.startsWith("-rendering=")) { demo.controls.renderCB.setSelected(s.endsWith("true")); } else if (arg.startsWith("-texture=")) { demo.controls.textureCB.setSelected(s.endsWith("true")); } else if (arg.startsWith("-composite=")) { demo.controls.compositeCB.setSelected(s.endsWith("true")); } else if (arg.startsWith("-verbose")) { demo.verboseCB.setSelected(true); } else if (arg.startsWith("-print")) { demo.printCB.setSelected(true); RunWindow.printCB.setSelected(true); } else if (arg.startsWith("-columns=")) { DemoGroup.columns = Integer.parseInt(s); } else if (arg.startsWith("-buffers=")) { // usage -buffers=3,10 RunWindow.buffersFlag = true; int i1 = arg.indexOf('=')+1; int i2 = arg.indexOf(','); String s1 = arg.substring(i1, i2); RunWindow.bufBeg = Integer.parseInt(s1); s1 = arg.substring(i2+1, arg.length()); RunWindow.bufEnd = Integer.parseInt(s1); } else if (arg.startsWith("-ccthread")) { demo.ccthreadCB.setSelected(true); } else if (arg.startsWith("-zoom")) { RunWindow.zoomCB.setSelected(true); } else if (arg.startsWith("-maxscreen")) { frame.setLocation(0, 0); frame.setSize(d.width, d.height); } } frame.validate(); frame.repaint(); frame.getFocusTraversalPolicy() .getDefaultComponent(frame) .requestFocus(); demo.start(); if (RunWindow.exit) { demo.startRunWindow(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -