elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10
61  Programación / Java / Re: Bloquear pantalla en: 8 Septiembre 2013, 00:03 am
Me interese por el asunto, así que me puse manos a la obra y a salido esto:

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. package base;
  5.  
  6. import graphics.Gui;
  7.  
  8. public class Main {
  9.  
  10. public static void main(String[] args) {
  11. java.awt.EventQueue.invokeLater(new Runnable() {
  12.            public void run() {
  13.                new Gui();
  14.            }
  15.        });
  16.  
  17. }
  18.  
  19. }

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. package graphics;
  5.  
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dimension;
  9. import java.awt.GridBagConstraints;
  10. import java.awt.GridBagLayout;
  11. import java.awt.Insets;
  12. import java.awt.event.ActionEvent;
  13. import java.awt.event.ActionListener;
  14.  
  15. import javax.swing.JButton;
  16. import javax.swing.JFrame;
  17. import javax.swing.JInternalFrame;
  18. import javax.swing.JLabel;
  19. import javax.swing.JPanel;
  20. import javax.swing.JPasswordField;
  21. import javax.swing.JTextField;
  22.  
  23. import base.Block;
  24.  
  25. public class Gui extends JFrame implements ActionListener{
  26.  
  27. private static final long serialVersionUID = 1L;
  28. private final String backgroundURL = "src/images/background.jpg";
  29. private final String loginTitle = "Login";
  30. private final String userLabelText = "User:";
  31. private final String passLabelText = "Password:";
  32. private final String loginButtonLabelText = "Login";
  33. private final String cancelButtonLabelText = "Cancel";
  34.  
  35. private final String user = "user";
  36. private final String pass = "1234";
  37.  
  38. private ImageDesktopPane desktopBackground;
  39. private JInternalFrame internalFrameLogin;
  40. private JPanel panelLogin;
  41. private JLabel userLabel;
  42. private JLabel passwordLabel;
  43. private JTextField userTextField;
  44. private JPasswordField passwordTextField;
  45. private JButton loginButton;
  46. private JButton cancelButton;
  47. private Block thread;
  48.  
  49. public Gui(){
  50. initFrame();
  51. }
  52.  
  53.  
  54. public void initFrame(){
  55. setUndecorated(true);
  56.        setDefaultCloseOperation( DO_NOTHING_ON_CLOSE  );
  57.        setExtendedState( MAXIMIZED_BOTH );
  58.        setAlwaysOnTop(true);
  59.        new Block(this);
  60.        initBackground();
  61. initInternalFrame();
  62.        setVisible(true);
  63. }
  64.  
  65. public void initBackground(){
  66. desktopBackground = new ImageDesktopPane(backgroundURL);
  67. desktopBackground.setLayout(new GridBagLayout());
  68. add(desktopBackground);
  69. }
  70.  
  71. public void initInternalFrame(){
  72. internalFrameLogin = new JInternalFrame(loginTitle);
  73. internalFrameLogin.setPreferredSize(new Dimension(300, 200));
  74. desktopBackground.add(internalFrameLogin);
  75. internalFrameLogin.setVisible(true);
  76. initLoginPanel();
  77. }
  78.  
  79. public void initLoginPanel(){
  80. panelLogin = new JPanel();
  81. panelLogin.setLayout(new GridBagLayout());
  82. internalFrameLogin.add(panelLogin);
  83. initLabels();
  84. initTextFields();
  85. initButtons();
  86. }
  87.  
  88. public void initLabels(){
  89. userLabel = new JLabel(userLabelText);
  90. passwordLabel = new JLabel(passLabelText);
  91. addComponentGBL(panelLogin,userLabel,0,0,1,1,GridBagConstraints.WEST, GridBagConstraints.NONE, 10, 75, 0, 0);
  92. addComponentGBL(panelLogin,passwordLabel,0,1,1,1,GridBagConstraints.WEST, GridBagConstraints.NONE, 10, 45, 70, 0);
  93. }
  94.  
  95. public void initTextFields(){
  96. userTextField = new JTextField();
  97. passwordTextField = new JPasswordField();
  98. userTextField.setPreferredSize(new Dimension(90,30));
  99. passwordTextField.setPreferredSize(new Dimension(90,30));
  100. addComponentGBL(panelLogin,userTextField,1,0,1,1,GridBagConstraints.EAST, GridBagConstraints.NONE, 10, 0, 0, 65);
  101. addComponentGBL(panelLogin,passwordTextField,1,1,1,1,GridBagConstraints.EAST, GridBagConstraints.NONE, 10, 0, 70, 65);
  102. userTextField.setFocusable(true);
  103. }
  104.  
  105. public void initButtons(){
  106. loginButton = new JButton(loginButtonLabelText);
  107. cancelButton = new JButton(cancelButtonLabelText);
  108. loginButton.addActionListener(this);
  109. cancelButton.addActionListener(this);
  110. addComponentGBL(panelLogin,loginButton,0,1,1,1,GridBagConstraints.CENTER, GridBagConstraints.NONE, 30, 70, 0, 0);
  111. addComponentGBL(panelLogin,cancelButton,1,1,1,1,GridBagConstraints.CENTER, GridBagConstraints.NONE, 30, 0, 0, 40);
  112. }
  113.  
  114. public void addComponentGBL(Container container, Component component, int gridx, int gridy, int gridwidth, int gridheight, int anchor, int fill, int inset1, int inset2, int inset3, int inset4) {
  115. Insets insets = new Insets(inset1, inset2, inset3, inset4);
  116. GridBagConstraints gbc = new GridBagConstraints(gridx, gridy, gridwidth, gridheight, 1.0, 1.0, anchor, fill, insets, 0, 0);
  117.    container.add(component, gbc);
  118.  }
  119.  
  120.  
  121. public void actionPerformed(ActionEvent e) {
  122. if(e.getSource() == loginButton) {
  123. if(userTextField.getText().equals(user) && passwordTextField.getText().equals(pass)){
  124. dispose();
  125. }
  126. } else if(e.getSource() == cancelButton) {
  127. dispose();
  128. }
  129. }
  130.  
  131. }
  132.  

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. package graphics;
  5.  
  6. import java.awt.Graphics;
  7. import java.awt.image.BufferedImage;
  8. import java.io.File;
  9. import java.io.IOException;
  10.  
  11. import javax.imageio.ImageIO;
  12. import javax.swing.JDesktopPane;
  13.  
  14. public class ImageDesktopPane extends JDesktopPane{
  15.  
  16. private static final long serialVersionUID = 1L;
  17. private BufferedImage image;
  18.  
  19.    public ImageDesktopPane(String path) {
  20.       try {                
  21.          image = ImageIO.read(new File(path));
  22.       } catch (IOException ex) {
  23.            System.out.println("Error al cargar la imagen de fondo");
  24.       }
  25.    }
  26.  
  27.    @Override
  28.    protected void paintComponent(Graphics g) {
  29.        super.paintComponent(g);
  30.        g.drawImage(image, 0, 0, getWidth(), getHeight(), this);          
  31.    }
  32.  
  33. }

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. package base;
  5.  
  6. import java.util.concurrent.Executors;
  7. import java.util.concurrent.ScheduledExecutorService;
  8. import java.util.concurrent.TimeUnit;
  9.  
  10. import javax.swing.JFrame;
  11.  
  12. import graphics.Gui;
  13.  
  14. public class Block{
  15.  
  16. private Gui frame;
  17.  
  18. public Block(Gui gui){
  19. frame = gui;
  20. ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
  21.        scheduler.scheduleAtFixedRate(
  22.            new Runnable()
  23.            {
  24.                public void run() {                  
  25.                    front();
  26.                }
  27.              }, 500, 50 , TimeUnit.MILLISECONDS );
  28. }
  29.  
  30. public void front(){
  31. frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
  32. frame.toFront();
  33. }
  34.  
  35. }
  36.  
  37.  

Un saludo y espero te sirva.
62  Programación / Java / Re: Bloquear pantalla en: 6 Septiembre 2013, 16:44 pm
Bueno, podrías programar un evento en ese textfield, que hasta que no escriba esa información mantenga esa ventana con lo siguiente:

Código
  1. ventana.setModal(true);

Y para que no cierren la aplicación:

Código
  1. frame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

Este último código unicamente se le puede aplicar a tu frame, en el caso en que le den a la X no se cerrara, solo podrán matar el proceso.

Un saludo y comenta que tal te fue.
63  Programación / Java / Re: Creando un programa para controlar faltas de asistencia (Curso) en: 2 Septiembre 2013, 21:31 pm
Bueno puedes hacerlo de muchas maneras distintas, la idea sería coger otro JTable distinto y printar todos los alumnos, y en vez de tener el JCheckBox para poner faltas le pones el número de faltas que tiene cada alumno con el método de getFaltas(), con el código que te e pasado tendría que ser muy fácil hacer esta parte.

PD: Cuando tengas mas tiempo si veo que no tiras ya te posteo código, pero primero intentalo buscando en internet.

Un saludo.
64  Programación / Java / Re: Seleccionar contenido de celda en: 2 Septiembre 2013, 18:56 pm
Cogiendo ese último método, si no me equivoco solo te faltaría agregarle a la tabla el listener, para que al pulsar sobre cualquier celda vaya a buscar ese evento.

Código
  1. tabla.addFocusListener(this);

Un saludo y comenta si te funciona.
65  Programación / Java / Re: Creando un programa para controlar faltas de asistencia (Curso) en: 2 Septiembre 2013, 18:45 pm
Bueno a ver, lo ideal a mi parecer no sería introducir un nombre y que le ponga falta, lo que estaría bien sería, mostrar una JTable con todos los nombres de la clase y a raíz de hay poner al lado de cada nombre un JCheckBox, para ir marcando los alumnos que han "faltado", al acabar darle al botón aceptar y se le sumaría una falta a cada alumno con el JCheckBox marcado, no se si me e explicado.

Bien, sabiendo esto,estaría bien que al darle a tu botón, se abriese una ventana con dicha tabla, para ello normalmente se utiliza un JDialog.

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. public class Main {
  5.  
  6. public static void main(String[] args) {
  7. new Gui();
  8. }
  9.  
  10. }
  11.  

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. import java.awt.BorderLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.util.ArrayList;
  8.  
  9. import javax.swing.JButton;
  10. import javax.swing.JDialog;
  11. import javax.swing.JFrame;
  12. import javax.swing.JScrollPane;
  13. import javax.swing.JTable;
  14. import javax.swing.table.DefaultTableModel;
  15. import javax.swing.table.TableColumn;
  16.  
  17. public class Gui extends JFrame implements ActionListener{
  18.  
  19. private static final long serialVersionUID = 1L;
  20. private JButton boton = new JButton("Pulsame!");
  21. private JDialog pasarLista = new JDialog();
  22. private DefaultTableModel model = new DefaultTableModel(){
  23. private static final long serialVersionUID = 1L;
  24. public boolean isCellEditable(int row, int col){
  25. if(col == 2){
  26. return true;
  27. }
  28. return false;
  29. }
  30. };
  31. private JTable tabla = new JTable(model);
  32. private JScrollPane pane = new JScrollPane(tabla);
  33. private JButton botonAceptar = new JButton("Aceptar");
  34. private ArrayList<Alumno> alumnos = new ArrayList<Alumno>();
  35. private final int columnas = 3;
  36. private TableColumn tableColumn;
  37.  
  38. public Gui(){
  39. setSize(200,200);
  40. setLocationRelativeTo(null);
  41. setDefaultCloseOperation(EXIT_ON_CLOSE);
  42. setVisible(true);
  43. add(boton);
  44. boton.addActionListener(this);
  45. defineTable();
  46. agregarAlumnos();
  47. }
  48.  
  49. public void agregarAlumnos(){ // Este método lo agrego para que veas como darías de alta alumnos, hay dos formas
  50.  
  51. alumnos.add(new Alumno("Pepe","Benito","Fraguas")); // Hacerlo todo directamente pasandole por parámetro al constructor sobrecargado lo que tiene que asignarles a las variables
  52.  
  53. alumnos.add(new Alumno());
  54. alumnos.get(1).setNombre("Juan");
  55. alumnos.get(1).setPrimerApellido("Armando"); // No pasarle nada por constructor y hacerlo a mano con los métodos de la calss Alumno
  56. alumnos.get(1).setSegundoApellido("No se que poner");
  57.  
  58. }
  59.  
  60. public void actionPerformed(ActionEvent e) {
  61. if(e.getSource() == boton){
  62. definePasarLista();
  63. addRow();
  64. } else if(e.getSource() == botonAceptar){
  65. int rowsCount = model.getRowCount();
  66. for(int i = 0; i < rowsCount; i++){
  67. if(((Boolean) tabla.getValueAt(i, 2)).booleanValue() == true){
  68. alumnos.get(i).addFalta();
  69. }
  70. }
  71. /*for(int i = 0; i < rowsCount; i++){
  72. System.out.println(alumnos.get(i).getNombre()+" - "+alumnos.get(i).getFaltas()); //Con esto compruebas al darle a aceptar, las faltas que tienen todos en consola.
  73. }*/
  74. pasarLista.dispose();
  75. }
  76.  
  77. }
  78.  
  79. public void defineTable(){
  80. model.addColumn("Nombre");
  81. model.addColumn("Apellidos");
  82. model.addColumn("Falta");
  83. tableColumn = tabla.getColumnModel().getColumn(2);
  84. tableColumn.setCellEditor(tabla.getDefaultEditor(Boolean.class));  
  85. tableColumn.setCellRenderer(tabla.getDefaultRenderer(Boolean.class));
  86. }
  87.  
  88. public void addRow(){
  89. Object [] data = new Object[columnas];
  90. int size = alumnos.size();
  91. int rowsCount = model.getRowCount();
  92. for(int i = 0; i < rowsCount; i++){
  93. model.removeRow(0);
  94. }
  95. for(int i = 0; i < size; i++){
  96. data[0] = alumnos.get(i).getNombre();
  97. data[1] = alumnos.get(i).getPrimerApellido()+ " " +alumnos.get(i).getSegundoApellido();
  98. data[2] = false;
  99. model.addRow(data);
  100. }
  101. }
  102.  
  103. public void definePasarLista(){
  104. pasarLista.setTitle("Pasar Lista");
  105. pasarLista.setSize(800,800);
  106. pasarLista.setLocationRelativeTo(null);
  107. pasarLista.setLayout(new BorderLayout());
  108. pasarLista.setVisible(true);
  109. pasarLista.add(pane, BorderLayout.CENTER);
  110. pasarLista.add(botonAceptar, BorderLayout.SOUTH);
  111. botonAceptar.addActionListener(this);
  112. }
  113.  
  114. }
  115.  

Código
  1. /*
  2.  * Autor: Zoik
  3.  */
  4. public class Alumno {
  5.  
  6. private String nombre,primerApellido,segundoApellido;
  7. private int faltas = 0;
  8.  
  9. public Alumno(){
  10.  
  11. }
  12.  
  13. public Alumno(String nombre, String primerApellido, String segundoApellido){
  14. this.nombre = nombre;
  15. this.primerApellido = primerApellido;
  16. this.segundoApellido = segundoApellido;
  17. }
  18.  
  19. public void setNombre(String value){
  20. nombre = value;
  21. }
  22.  
  23. public void setPrimerApellido(String value){
  24. primerApellido = value;
  25. }
  26.  
  27. public void setSegundoApellido(String value){
  28. segundoApellido = value;
  29. }
  30.  
  31. public String getNombre(){
  32. return nombre;
  33. }
  34.  
  35. public String getPrimerApellido(){
  36. return primerApellido;
  37. }
  38.  
  39. public String getSegundoApellido(){
  40. return segundoApellido;
  41. }
  42.  
  43. public void addFalta(){
  44. faltas++;
  45. }
  46.  
  47. public void removeFalta(){
  48. faltas--;
  49. }
  50.  
  51. public int getFaltas(){
  52. return faltas;
  53. }
  54. }
  55.  

Lo e hecho suponiendo que ya tienes lo anterior hecho, obviamente no pondrías únicamente un botón al abrir la aplicación. Si quieres hacer interfaces rápido, NetBeans está genial con su bonito drag and drop, si quieres aprender mucho yo recomiendo Eclipse, yo empece con el y  no me e separado nunca, no vayas al lado oscuro  :o.

Un saludo y ya comentaras que tal te a ido.
66  Programación / Java / Re: Creando un programa para controlar faltas de asistencia (Curso) en: 1 Septiembre 2013, 11:14 am
A continuación del botón ponle:

Código
  1. boton1.addActionListener(this);

En el método que recoge los eventos le pones:

Código
  1. if(e.getSource() == boton1){
  2. // Código que quieres ejecutar al pulsar ese botón
  3. }

Yo en tu lugar haría una class tipo alumno y allí estipularia sus datos.
Dime si te sirve.
Un saludo.
67  Programación / Java / Re: [Aporte] Shutdown en diferentes Plataformas. en: 30 Agosto 2013, 21:56 pm
Me lo e leído muy por encima, y tengo curiosidad sobre la class OperatingSystem, podrías pasarme por privado alguna referencia con la cual pudiese aprender a distinguir entre sistemas operativos por favor?

Gracias de antemano.
68  Programación / Java / Re: Ayuda Java en: 30 Agosto 2013, 21:49 pm
Es decir, si me e enterado bien, quieres poner java, es decir la máquina virtual de java para que te reconozca los ficheros de java, en modo silencioso descargandolo y instalandolo directamente de internet.

Es un poco contradictorio, si no tienes java, como quieres ejecutar aplicaciones echas en java.

Explicate mejor porfavor.
69  Programación / Java / Re: [Aporte] Shutdown en diferentes Plataformas. en: 30 Agosto 2013, 21:46 pm
Bueno solo he probado el programa con un copy paste, y no se que hago mal que la hora no me la coge, introduzco, la fecha por defecto, y la hora 01:00:00 también e probado la hora 01:00 me salta el dialog de que la revise.

El código cuando tenga tiempo me lo mirare en profundidad, pero tiene una pintaza  ;-)

Un saludo
70  Programación / Java / Re: Ejecutar programa java en segundo plano en: 30 Agosto 2013, 09:46 am
Bueno si haces una aplicación sin interface gráfica, y luego la exportas en un jar, al dar doble click no ves nada de lo que hace la aplicación, solo puedes ver el proceso si no me equivoco.

Respecto a que funcione todo el rato, creo recordar que ubuntu tenía un fichero con comandos que se inician al arrancar la máquina, podrías agregar un comando que iniciase la aplicación.

No se si sera eso lo que quieres.

Un saludo.
Páginas: 1 2 3 4 5 6 [7] 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines