WordPress: действие pre_get_posts объединяет date_query и meta_query

ОК, после некоторых исследований и модификаций я нашел ответ:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.event.MouseInputAdapter;

public class Demo_Large_Custom_Cursor
{
  static private MyGlassPane myGlassPane;

  // Create the GUI and show it. For thread safety, this method should be invoked from the event-dispatching thread.
  private static void createAndShowGUI()
  {
    //Create and set up the window.
    JFrame frame=new JFrame("Demo_Large_Custom_Cursor");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Start creating and adding components.
    JCheckBox changeButton=new JCheckBox("Custom Cursor \"visible\"");
    changeButton.setSelected(false);

    //Set up the content pane, where the "main GUI" lives.
    Container contentPane=frame.getContentPane();
    contentPane.setLayout(new FlowLayout());
    contentPane.add(changeButton);

    JButton Button_1=new JButton("
AB
CD
"); Button_1.setPreferredSize(new Dimension(80,80)); Button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { Out("Button 1"); } }); contentPane.add(Button_1); JButton Button_2=new JButton("
12
34
"); Button_2.setPreferredSize(new Dimension(80,80)); Button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { Out("Button 2"); } }); contentPane.add(Button_2); //Set up the menu bar, which appears above the content pane. JMenuBar menuBar=new JMenuBar(); JMenu menu=new JMenu("Menu"); menu.add(new JMenuItem("Do nothing")); menuBar.add(menu); frame.setJMenuBar(menuBar); //Set up the glass pane, which appears over both menu bar //and content pane and is an item listener on the change //button. myGlassPane=new MyGlassPane(changeButton,menuBar,frame.getContentPane()); changeButton.addItemListener(myGlassPane); frame.setGlassPane(myGlassPane); //Show the window. frame.setLocationRelativeTo(null); frame.pack(); frame.setVisible(true); } private static void out(String message) { System.out.print(message); } private static void Out(String message) { System.out.println(message); } public static void main(String[] args) { //Schedule a job for the event-dispatching thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } } /** We have to provide our own glass pane so that it can paint. */ class MyGlassPane extends JComponent implements ItemListener { Point point; //React to change button clicks. public void itemStateChanged(ItemEvent e) { setVisible(e.getStateChange()==ItemEvent.SELECTED); } protected void paintComponent(Graphics g) { try { if (point!=null) { // g.setColor(Color.red); // g.fillOval(point.x-10,point.y-10,20,20); BufferedImage image=ImageIO.read(new File("C:/Cursor_Crosshair.PNG")); g.drawImage(image,point.x-39,point.y-39,null); } } catch (Exception e) { } } public void setPoint(Point p) { point=p; } public MyGlassPane(AbstractButton aButton,JMenuBar menuBar,Container contentPane) { CBListener listener=new CBListener(aButton,menuBar,this,contentPane); addMouseListener(listener); addMouseMotionListener(listener); } } /** Listen for all events that our check box is likely to be interested in. Redispatch them to the check box. */ class CBListener extends MouseInputAdapter { Toolkit toolkit; Component liveButton; JMenuBar menuBar; MyGlassPane glassPane; Container contentPane; public CBListener(Component liveButton,JMenuBar menuBar,MyGlassPane glassPane,Container contentPane) { toolkit=Toolkit.getDefaultToolkit(); this.liveButton=liveButton; this.menuBar=menuBar; this.glassPane=glassPane; this.contentPane=contentPane; } public void mouseMoved(MouseEvent e) { // redispatchMouseEvent(e,false); redispatchMouseEvent(e,true); } public void mouseDragged(MouseEvent e) { redispatchMouseEvent(e,false); } public void mouseClicked(MouseEvent e) { redispatchMouseEvent(e,false); } public void mouseEntered(MouseEvent e) { redispatchMouseEvent(e,false); } public void mouseExited(MouseEvent e) { redispatchMouseEvent(e,false); } public void mousePressed(MouseEvent e) { redispatchMouseEvent(e,false); } public void mouseReleased(MouseEvent e) { redispatchMouseEvent(e,true); } //A basic implementation of redispatching events. private void redispatchMouseEvent(MouseEvent e,boolean repaint) { Point glassPanePoint=e.getPoint(); Container container=contentPane; Point containerPoint=SwingUtilities.convertPoint(glassPane,glassPanePoint,contentPane); if (containerPoint.y<0) { //we're not in the content pane if (containerPoint.y+menuBar.getHeight()>=0) { //The mouse event is over the menu bar. //Could handle specially. } else { //The mouse event is over non-system window //decorations, such as the ones provided by //the Java look and feel. //Could handle specially. } } else { //The mouse event is probably over the content pane. //Find out exactly which component it's over. Component component=SwingUtilities.getDeepestComponentAt(container,containerPoint.x,containerPoint.y); // if ((component!=null) && (component.equals(liveButton))) if ((component!=null)) { //Forward events over the check box. Point componentPoint=SwingUtilities.convertPoint(glassPane,glassPanePoint,component); component.dispatchEvent(new MouseEvent(component,e.getID(),e.getWhen(),e.getModifiers(),componentPoint.x,componentPoint.y,e.getClickCount(),e.isPopupTrigger())); } } //Update the glass pane if requested. if (repaint) { glassPane.setPoint(glassPanePoint); glassPane.repaint(); } } }

И Cursor_Crosshair.PNG выглядит так:

2
задан Kashif Rafique 19 January 2019 в 00:38
поделиться