Bienvenido a seguir el blog de Fang Zhipeng y responder a "666" para obtener el libro de entrevistas.
Fuente: juejin.cn/post/6914083794806898695
prefacio
En ese entonces, cuando era joven e ignorante, llené mi programa voluntario ese verano y elegí una carrera, mis padres escucharon a otros ancianos decir que es mejor elegir una carrera en informática. Desde entonces, he tenido una profunda huella de Jiyuan en mi cuerpo. Desde el dormitorio hasta la sala de informática, desde la sala de informática hasta la biblioteca, C, C++, Java, mientras quieras escribir algo que te interese, puedes sentarte durante horas, pero cuando eras joven, te levantaste, empacaste, trotaste todo el camino para encontrarte con la diosa, ligera, fácil y suelta.
Ahora trabajando, sin accidente haciendo trabajo de desarrollo, sentado durante mucho tiempo. Tan pronto como me pongo a escribir código, me olvido de levantarme y moverme, y no bebo mucha agua. A menudo me siento incómodo en la cintura y las piernas cuando termino de trabajar. No fue hasta el informe del examen médico de este año que me di cuenta de que sin un cuerpo saludable, no puedo trabajar duro y dejar que mi jefe viva la vida que quiere.
Intenté recordármelo en mi teléfono, pero no funcionó. La función de recordatorio sedentario de Xiaomi Mi Band también está activada. A veces estoy escribiendo código y lo desactivo cuando se acabe el tiempo, pero sigue sin tener efecto. Así que creo que si soy demasiado perezoso o es fácil volverse adicto a escribir código con Idea, en resumen, no puede ser interesante cambiar los requisitos.
Entonces, el día de Año Nuevo, planeo desarrollar un pequeño complemento antiadicción de Idea para mí. Lo llamo [StopCoding]. Debería poder establecer cuántos minutos aparece un cuadro de diálogo de recordatorio. Una vez que aparece el cuadro de diálogo, el cuadro de edición del código de la idea perderá automáticamente el foco y no se podrá hacer nada. Todavía no ha terminado, la clave es este cuadro de diálogo. box No se puede cerrar, y también muestra una cuenta regresiva para descansar, e incluso si cambio la hora del sistema, la cuenta regresiva sigue funcionando, a menos que abra el administrador de tareas, cierre el proceso de Idea y reinicie Idea. Pero piénsalo, las ideas están todas cerradas, tomemos un descanso.
Permítanme presentarles su tutorial de uso simple y su tutorial de desarrollo.
Tutorial de instalación y uso.
Instalar
1. Busque e instale el complemento StopCoding directamente en la idea (el oficial ha sido aprobado)

2. Los pequeños socios de desarrollo de intranet pueden descargar e instalar localmente
https://github.com/jogeen/StopCoding/releases/tag/20210104-V1.0
-
Instalación local:

usar
-
Paso 1. Luego, en las herramientas de la barra de menú-> StopCoding

-
Paso 2. Configure los parámetros adecuados para usted y guárdelos.

-
Paso 3. Entonces ten una codificación feliz, no te preocupes por ser adicto. Cuando termine el tiempo de trabajo, aparecerá el siguiente cuadro para recordar, por supuesto, este cuadro no se puede cerrar. Se cerrará automáticamente solo después de que tenga suficiente tiempo para descansar.

Tutoría de desarrollo
Este complemento es muy simple y la operación de la interfaz también es muy simple. Las técnicas utilizadas son básicamente conocimientos básicos de programación en java . Así que si estás interesado, echemos un vistazo.
ámbito técnico
-
La estructura básica del proyecto de plug-in
-
Swing es el principal responsable de la interacción de dos cuadros de diálogo.
-
Temporizador como la selección de temporizador más básica
Estructura del proyecto de complemento

-
plugin.xml
Este es el archivo de configuración central del proyecto de complemento. Para obtener una explicación de cada elemento, puede consultar la introducción del primer artículo:
https://juejin.cn/post/6844904127990857742
-
paquete de datos -
SettingData, la información de configuración corresponde al modelo -
DataCenter, como centro de datos en tiempo de ejecución, son todas variables globales estáticas -
Servicio -
TimerService El código central de este cálculo de tiempo -
tarea -
Tarea cronometrada RestTask al descansar -
Tareas programadas cuando WorkTask está funcionando -
interfaz de usuario -
Cuadro de diálogo SettingDialog para configurar la información -
Cuadro de diálogo TipsDialog para recordar cuándo tomar un descanso -
StopCodingSettingAction inicia la acción de la entrada
Ritmo
De hecho, la interfaz para desarrollar proyectos Swing en idea es muy sencilla. Porque la idea proporciona una serie de operaciones visuales, así como el diseño de control de arrastrar y soltar. A continuación, presentaremos brevemente el proceso de creación de diálogos y agregaremos eventos.
Crear cuadro de diálogo
-
Paso 1

-
Paso 2

-
Paso 3

-
Nota: No hay una explicación detallada de Swing aquí, porque esta cosa en la interfaz debe practicarla usted mismo. No hay descripción manual aquí.
Añadir evento
De hecho, los dos botones del cuadro de diálogo recién creado ya han creado eventos de clic de forma predeterminada.
public class TestDialog extends JDialog {
private JPanel contentPane;
private JButton buttonOK;
private JButton buttonCancel;
public TestDialog() {
setContentPane(contentPane);
setModal(true);
getRootPane().setDefaultButton(buttonOK);
buttonOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onOK();
}
}); //这是给OK按钮绑定点击事件的监听器
buttonCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCancel();
}
});//这是给取消按钮绑定点击事件的监听器
//其他代码
}
Por supuesto, también podemos crear diferentes detectores de eventos para cualquier otro control. Hay muchos tipos de oyentes que se pueden crear a través de operaciones de interfaz y puede usarlos siempre que los necesite.
-
paso 1

-
paso 2

temporizador temporizador
En este complemento, debe usar la función de sincronización para calcular el principado y el tiempo de descanso al mismo tiempo. Por lo tanto, usar el temporizador que viene con JDK es muy conveniente. Abajo pongo aquí la api comúnmente usada de Timer, para que quede claro su uso.
-
Método de construcción

-
prevención de miembros

-
Principalmente programe para agregar una tarea cronometrada y use cancelar para cancelar la tarea y detener el temporizador.
Al final
Creo que con estas introducciones básicas, gracias a los amigos interesados que quieren ver el código fuente y tratan de escribir un pequeño plug-in ellos mismos, no hay mayor problema. No hables, tengo que descansar. Espero que este complemento pueda ayudarlo como programador, y este artículo tiene un poco de inspiración para usted. Por supuesto, por favor dale a me gusta y anima a los trabajadores.
Contenido popular:
Recomendar un marco de desarrollo rápido de interfaz Java Entrevistador: ¿Por qué necesita forEach cuando tiene un ciclo for? De acuerdo con la clasificación en línea de las ocupaciones del tazón de arroz de hierro, ¡los funcionarios públicos solo ocupan el octavo lugar! ¿Por qué es "1000==1000" falso y "100==100" verdadero en Java?

Recientemente entrevisté a BAT y compilé un material de entrevista " Manual de autorización de BAT de entrevista de Java " , que cubre las tecnologías centrales de Java, JVM, concurrencia de Java, SSM, microservicios, bases de datos, estructuras de datos y más. Cómo obtenerlo: Haz clic en " Mirando ", sigue la cuenta oficial y responde al 666 para recibirlo. Se proporcionarán más contenidos uno tras otro.