好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

土石方工程专业承包企业资质等级.ppt

93页
  • 卖家[上传人]:桔****
  • 文档编号:584524301
  • 上传时间:2024-08-31
  • 文档格式:PPT
  • 文档大小:708KB
  • / 93 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Chapter 13 GUI Basics1 MotivationsThe design of the API for Java GUI programming is an excellent example of how the object-oriented principle is applied. In the chapters that follow, you will learn the framework of Java GUI API and use the GUI components to develop user-friendly interfaces for applications and applets.2 Creating GUI Objects// Create a button with text OK JButton jbtOK = new JButton("OK");  // Create a label with text "Enter your name: "JLabel jlblName = new JLabel("Enter your name: ");  // Create a text field with text "Type Name Here"JTextField jtfName = new JTextField("Type Name Here");  // Create a check box with text boldJCheckBox jchkBold = new JCheckBox("Bold");  // Create a radio button with text redJRadioButton jrbRed = new JRadioButton("Red");  // Create a combo box with choices red, green, and blueJComboBox jcboColor = new JComboBox(new String[]{"Red",   "Green", "Blue"}); ButtonLabelText fieldCheck BoxRadio ButtonCombo Box3 Swing vs. AWTSo why do the GUI component classes have a prefix J? Instead of JButton, why not name it simply Button? In fact, there is a class already named Button in the  package.When Java was introduced, the GUI classes were bundled in a library known as the Abstract Windows Toolkit (AWT). For every platform on which Java runs, the AWT components are automatically mapped to the platform-specific components through their respective agents, known as peers.  AWT is fine for developing simple graphical user interfaces, but not for developing comprehensive GUI projects. Besides, AWT is prone to platform-specific bugs because its peer-based approach relies heavily on the underlying platform. With the release of Java 2, the AWT user-interface components were replaced by a more robust, versatile, and flexible library known as Swing components. Swing components are painted directly on canvases using Java code, except for components that are subclasses of  or , which must be drawn using native GUI on a specific platform. Swing components are less dependent on the target platform and use less of the native GUI resource. For this reason, Swing components that don’t rely on native GUI are referred to as lightweight components, and AWT components are referred to as heavyweight components.  4 Container ClassesContainer classes can contain other GUI components.5 The helper classes are not subclasses of Component. They are used to describe the properties of GUI components such as graphics context, colors, fonts, and dimension.GUI Helper Classes6 Swing GUI Components 7 Components Covered in the Comprehensive Version8 AWT (Optional)9 FramesFFrame is a window that is not contained inside another window. Frame is the basis to contain other user interface components in Java GUI applications.FThe JFrame class can be used to create windows. FFor Swing GUI programs, use JFrame class to create widows.10 Creating FramesRunimport javax.swing.*;public class MyFrame {  public static void main(String[] args) {    JFrame frame = new JFrame("Test Frame");    frame.setSize(400, 300);    frame.setVisible(true);    frame.setDefaultCloseOperation(      JFrame.EXIT_ON_CLOSE);  }   }MyFrame11 Adding Components into a Frame// Add a button into the frameframe.getContentPane().add( new JButton("OK"));RunMyFrameWithComponentsTitle barContent pane12 // Add a button into the frameframe.getContentPane().add( new JButton("OK"));Title barContent pane// Add a button into the frameframe.add( new JButton("OK"));13 JFrame Class14 Layout ManagersFJava’s layout managers provide a level of abstraction to automatically map your user interface on all window systems. FThe UI components are placed in containers.  Each container has a layout manager to arrange the UI components within the container. FLayout managers are set in containers using the setLayout(LayoutManager) method in a container. 15 FlowLayout ExampleWrite a program that adds three labels and text fields into the content pane of a frame with a FlowLayout manager. ShowFlowLayoutRun16 The FlowLayout Class17 GridLayout ExampleRewrite the program in the preceding example using a GridLayout manager instead of a FlowLayout manager to display the labels and text fields.ShowGridLayoutRun18 The GridLayout Class19 The BorderLayout ManagerThe BorderLayout manager divides the container into five areas: East, South, West, North, and Center.  Components are added to a BorderLayout by using the add method.add(Component, constraint), where constraint is , , , , or . 20 BorderLayout ExampleShowBorderLayoutRun21 The BorderLayout Class22 The Color ClassYou can set colors for GUI components by using the  class. Colors are made of red, green, and blue components, each of which is represented by a byte value that describes its intensity, ranging from 0 (darkest shade) to 255 (lightest shade). This is known as the RGB model. Color c = new Color(r, g, b);r, g, and b specify a color by its red, green, and blue components. Example:Color c = new Color(228, 100, 255);23 Standard ColorsThirteen standard colors (black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow) are defined as constants in . The standard color names are constants, but they are named as variables with lowercase for the first word and uppercase for the first letters of subsequent words. Thus the color names violate the Java naming convention. Since JDK 1.4, you can also use the new constants: BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, and YELLOW.24 Setting ColorsYou can use the following methods to set the component’s background and foreground colors:setBackground(Color c) setForeground(Color c)Example:jbt.setBackground(Color.yellow);jbt.setForeground(Color.red);25 The Font ClassFont myFont = new Font(name, style, size);Example:Font myFont = new Font("SansSerif ", Font.BOLD, 16);Font myFont = new Font("Serif", Font.BOLD+Font.ITALIC, 12);JButton jbtOK = new JButton("OK“);jbtOK.setFont(myFont);Font NamesStandard font names that are supported in all platforms are: SansSerif, Serif, Monospaced, Dialog, or DialogInput.Font Style (0),  (1),  (2), and  +  (3)26 Finding All Available Font NamesGraphicsEnvironment e =   GraphicsEnvironment.getLocalGraphicsEnvironment();String[] fontnames =   e.getAvailableFontFamilyNames();for (int i = 0; i < fontnames.length; i++)  System.out.println(fontnames[i]);27 Using Panels as Sub-ContainersFPanels act as sub-containers for grouping user interface components. FIt is recommended that you place the user interface components in panels and place the panels in a frame. You can also place panels in a panel. FTo add a component to JFrame, you actually add it to the content pane of JFrame. To add a component to a panel, you add it directly to the panel using the add method. 28 Creating a JPanelYou can use new JPanel() to create a panel with a default FlowLayout manager or new JPanel(LayoutManager) to create a panel with the specified layout manager. Use the add(Component) method to add a component to the panel. For example,JPanel p = new JPanel();p.add(new JButton("OK"));29 Testing Panels ExampleThis example uses panels to organize components. The program creates a user interface for a Microwave oven. TestPanelsRun30 Common Features of Swing Components31 BordersYou can set a border on any object of the JComponent class. Swing has several types of borders. To create a titled border, use new TitledBorder(String title). To create a line border, use new LineBorder(Color color, int width), where width specifies the thickness of the line. For example, the following code displays a titled border on a panel:JPanel panel = new JPanel();panel.setBorder(new TitleBorder(“My Panel”));32 Test Swing Common FeaturesComponent PropertiesFfont FbackgroundFforegroundFpreferredSizeFminimumSizeFmaximumSizeJComponent PropertiesFtoolTipTextFborderTestSwingCommonFeaturesRun33 Image IconsJava uses the  class to represent an icon. An icon is a fixed-size picture; typically it is small and used to decorate components. Images are normally stored in image files. You can use new ImageIcon(filename) to construct an image icon. For example, the following statement creates an icon from an image file  in the image directory under the current class path:    ImageIcon icon = new ImageIcon("image/us.gif");TestImageIconRun34 Chapter 15 Event-Driven Programming35 Procedural vs. Event-Driven ProgrammingFProcedural programming is executed in procedural order.FIn event-driven programming, code is executed upon activation of events. 36 Revisit Listing 11.7Taste of Event-Driven ProgrammingFThe example displays a button in the frame. A message is displayed on the console when a button is clicked. HandleEventRun37 EventsFAn event can be defined as a type of signal to the program that something has happened. FThe event is generated by external user actions such as mouse movements, mouse clicks, and keystrokes, or by the operating system, such as a timer.38 Event Classes39 Event InformationAn event object contains whatever properties are pertinent to the event. You can identify the source object of the event using the getSource() instance method in the EventObject class. The subclasses of EventObject deal with special types of events, such as button actions, window events, component events, mouse movements, and keystrokes. Table 15.1 lists external user actions, source objects, and event types generated.40 Selected User ActionsSourceEvent TypeUser ActionObjectGeneratedClick a buttonJButtonActionEventClick a check boxJCheckBoxItemEvent, ActionEventClick a radio buttonJRadioButtonItemEvent, ActionEventPress return on a text fieldJTextFieldActionEventSelect a new itemJComboBoxItemEvent, ActionEventWindow opened, closed, etc.WindowWindowEvent Mouse pressed, released, etc.ComponentMouseEvent Key released, pressed, etc. ComponentKeyEvent 41 The Delegation Model42 Internal Function of a Source Component43 The Delegation Model: ExampleJButton jbt = new JButton("OK");ActionListener listener = new OKListener();jbt.addActionListener(listener);44 Selected Event Handlers Event ClassListener InterfaceListener Methods (Handlers)ActionEventActionListeneractionPerformed(ActionEvent)ItemEventItemListeneritemStateChanged(ItemEvent)WindowEventWindowListenerwindowClosing(WindowEvent)windowOpened(WindowEvent)windowIconified(WindowEvent)windowDeiconified(WindowEvent)windowClosed(WindowEvent)windowActivated(WindowEvent)windowDeactivated(WindowEvent)ContainerEventContainerListenercomponentAdded(ContainerEvent)componentRemoved(ContainerEvent) MouseEventMouseListenermousePressed(MouseEvent)mouseReleased(MouseEvent)                                      mouseClicked(MouseEvent)                                     mouseExited(MouseEvent)                                     mouseEntered(MouseEvent)KeyEventKeyListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)                                      keyTypeed(KeyEvent)45 SimpleEventDemoRun46 Inner Class ListenersA listener class is designed specifically to create a listener object for a GUI component (e.g., a button). It will not be shared by other applications. So, it is appropriate to define the listener class inside the frame class as an inner class. 47 Inner ClassesInner class: A class is a member of another class.Advantages: In some applications, you can use an inner class to make programs simple.FAn inner class can reference the data and methods defined in the outer class in which it nests, so you do not need to pass the reference of the outer class to the constructor of the inner class.ShowInnerClass48 Inner Classes, cont.49 Inner Classes (cont.)FInner classes can make programs simple and concise. FAn inner class supports the work of its containing outer class and is compiled into a class named OuterClassName$InnerClassName.class. For example, the inner class InnerClass in OuterClass is compiled into OuterClass$InnerClass.class.50 Revisiting SimpleEventDemo Using Inner ClassesSimpleEventDemoInnerClassRun51 Anonymous Inner ClassesFAn anonymous inner class must always extend a superclass or implement an interface, but it cannot have an explicit extends or implements clause. FAn anonymous inner class must implement all the abstract methods in the superclass or in the interface. FAn anonymous inner class always uses the no-arg constructor from its superclass to create an instance. If an anonymous inner class implements an interface, the constructor is Object().FAn anonymous inner class is compiled into a class named OuterClassName$n.class. For example, if the outer class Test has two anonymous inner classes, these two classes are compiled into Test$1.class and Test$2.class.52 Anonymous Inner Classes (cont.)Inner class listeners can be shortened using anonymous inner classes. An anonymous inner class is an inner class without a name. It combines declaring an inner class and creating an instance of the class in one step. An anonymous inner class is declared as follows:new SuperClassName/InterfaceName() {  // Implement or override methods in superclass or interface  // Other methods if necessary}53 Revising SimpleEventDemo Using Anonymous Inner ClassesAnonymousListenerClassRun54 Example: Controlling BallsControlBallRunFObjective: Use buttons to enlarge or shrink a ball. 55 Example: Handling Window EventsTestWindowEventRunFObjective: Demonstrate handling the window events. Any subclass of the Window class can generate the following window events: window opened, closing, closed, activated, deactivated, iconified, and deiconified. This program creates a frame, listens to the window events, and displays a message to indicate the occurring event. 56 MouseEvent57 Handling Mouse EventsFJava provides two listener interfaces, MouseListener and MouseMotionListener, to handle mouse events. FThe MouseListener listens for actions such as when the mouse is pressed, released, entered, exited, or clicked. FThe MouseMotionListener listens foractions such as dragging or moving themouse. 58 Handling Mouse Events59 Example: Moving Message Using MouseObjective: Create a program to display a message in a panel. You can use the mouse to move the message. The message moves as the mouse drags and is always displayed at the mouse point. MoveMessageDemoRun60 The Timer Class Some non-GUI components can fire events. The  class is a source component that fires an ActionEvent at a predefined rate.The Timer class can be used to control animations. For example, you can use it to display a moving message.AnimationDemoRun61 Chapter 16Creating User Interfaces62 MotivationsA graphical user interface (GUI) makes a system user-friendly and easy to use. Creating a GUI requires creativity and knowledge of how GUI components work. Since the GUI components in Java are very flexible and versatile, you can create a wide assortment of useful user interfaces.Previous chapters briefly introduced several GUI components. This chapter introduces the frequently used GUI components in detail (see Figure 16.1).     63 Components Covered in the ChapterFIntroduces the frequently used GUI componentsFUses borders and icons64 ButtonsA button is a component that triggers an action event when clicked. Swing provides regular buttons, toggle buttons, check box buttons, and radio buttons. The common features of these buttons are generalized in .65 AbstractButton66 JButtonJButton inherits AbstractButton and provides several constructors to create buttons.67 JButton Properties (inherited)FtextFiconFmnemonicFhorizontalAlignmentFverticalAlignmentFhorizontalTextPositionFverticalTextPositionFiconTextGap68 Example: Using ButtonsWrite a program that displays a message on a panel and uses two buttons, <= and =>, to move the message on the panel to the left or right. RunButtonDemo69 JCheckBoxJCheckBox inherits all the properties such as text, icon, mnemonic, verticalAlignment, horizontalAlignment, horizontalTextPosition, verticalTextPosition, and selected from AbstractButton, and provides several constructors to create check boxes.70 Example: Using Check BoxesAdd three check boxes named Centered, Bold, and Italic into Example 16.1 to let the user specify whether the message is centered, bold, or italic. CheckBoxDemoRunButtonDemoCheckBoxDemo71 JRadioButtonRadio buttons are variations of check boxes. They are often used in the group, where only one button is checked at a time.72 Grouping Radio ButtonsButtonGroup btg = new ButtonGroup();btg.add(jrb1);btg.add(jrb2);73 Example: Using Radio ButtonsAdd three radio buttons named Red, Green, and Blue into the preceding example to let the user choose the color of the message.RunRadioButtonDemoButtonDemoCheckBoxDemoRadioButtonDemo74 JLabelA label is a display area for a short text, an image, or both.75 JLabel PropertiesJLabel inherits all the properties from JComponent and has many properties similar to the ones in JButton, such as text, icon, horizontalAlignment, verticalAlignment, horizontalTextPosition, verticalTextPosition, and iconTextGap. 76 Using Labels// Create an image icon from image fileImageIcon icon = new ImageIcon("image/grapes.gif"); // Create a label with text, an icon, // with centered horizontal alignmentJLabel jlbl = new JLabel("Grapes", icon, SwingConstants.CENTER); // Set label's text alignment and gap between text and iconjlbl.setHorizontalTextPosition(SwingConstants.CENTER);jlbl.setVerticalTextPosition(SwingConstants.BOTTOM);jlbl.setIconTextGap(5);77 JTextFieldA text field is an input area where the user can type in characters. Text fields are useful in that they enable the user to enter in variable data (such as a name or a description).78 JTextField MethodsFgetText()Returns the string from the text field. Inherited FsetText(String text)Puts the given string in the text field. InheritedFsetEditable(boolean editable)Enables or disables the text field to be edited. By default, editable is true. InheritedFsetColumns(int)Sets the number of columns in this text field.The length of the text field is changeable.  79 Example: Using Text FieldsAdd a text field to the preceding example to let the user set a new message.RunTextFieldDemo80 JTextAreaIf you want to let the user enter multiple lines of text, you cannot use text fields unless you create several of them.  The solution is to use JTextArea, which enables the user to enter multiple lines of text. 81 Example: Using Text AreasFThis example gives a program that displays an image in a label, a title in a label, and a text in a text area. 82 Example, cont.RunTextAreaDemo83 JComboBoxA combo box is a simple list of items from which the user can choose. It performs basically the same function as a list, but can get only one value. 84 JComboBox MethodsTo add an item to a JComboBox jcbo, usejcbo.addItem(Object item)To get an item from JComboBox jcbo, usejcbo.getItem()85 Using theitemStateChanged Handlerpublic void itemStateChanged(ItemEvent e) {   // Make sure the source is a combo box  if (e.getSource() instanceof JComboBox)    String s = (String)e.getItem();}When a choice is checked or unchecked, itemStateChanged() for ItemEvent is invoked as well as the actionPerformed() handler for ActionEvent.86 Example: Using Combo BoxesThis example lets users view an image and a description of a country's flag by selecting the country from a combo box.RunComboBoxDemo87 JListA list is a component that performs basically the same function as a combo box, but it enables the user to choose a single value or multiple values. 88 Example: Using Lists This example gives a program that lets users select countries in a list and display the flags of the selected countries in the labels. RunListDemo89 JScrollBarA scroll bar is a control that enables the user to select from a range of values. The scrollbar appears in two styles: horizontal and vertical.90 Scroll Bar Properties91 Example: Using ScrollbarsThis example uses horizontal and vertical scrollbars to control a message displayed on a panel. The horizontal scrollbar is used to move the message to the left or the right, and the vertical scrollbar to move it up and down. ScrollBarDemoRun92 2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZ(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr$u(x+B2E5H9KcNfVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!tA1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s-A1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0BJaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOg93 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.