Anonymní profil NotBegineer – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil NotBegineer – Programujte.comAnonymní profil NotBegineer – Programujte.com

 

Příspěvky odeslané z IP adresy 86.49.87.–

NotBegineer
C / C++ › Java JNI - C - přenos strukt…
6. 6. 2013   #177406

Oprava nějak se tam nedostal celý zdroják v *.c 

#include <jni.h>
#include <stdio.h>
#include "HlavniTrida.h"
#include "HlavniTrida_testTrida.h"
typedef struct _MyStruct {
  int cis1;
  int cis2;
  int cis3;
} ObjektTest;

JNIEXPORT jint JNICALL Java_HlavniTrida_vstupObjekt (JNIEnv *env, jobject obj, jobject objTriHodnot) {
	ObjektTest testObjekt1;

}

JNIEXPORT jobject JNICALL Java_HlavniTrida_vstupVystupObjekt (JNIEnv *env, jclass obj, jobject objektTriHodnot){
	ObjektTest testObjekt2;
}
NotBegineer
C / C++ › Java JNI - C - přenos strukt…
6. 6. 2013   #177403

Ahojte hraji si s přenosem struktury mezi Javou a čistě Cčkem přes *.dll. Potřebuji pomoci jestli někdo ví k úpravou kódu v Cčku. Nejsem Cčkař a potřebuji pomoci s zdrojem v cčku. Nevím jak přenést strukturu(objekt) do dane metody. Neboli jak dostat do "testObjekt1" celý objekt "objTriHodnot". Kód této primitivni metody jenz ma navratovy typ int ma provést pouhe secteni těch tří čísel. ( je to jenom testovací příklad k pochopení problematiky ). Problém u druhé metody je identicky ovšem v tomto případě je navratový typ struktura(objekt), jejiž cisla se zvysi o +1. Díky, jestli to někdo bude vědět.

public class HlavniTrida {
	private static class testTrida {
		int cislo1,cislo2,cislo3;
		testTrida(int cis1,int cis2,int cis3){ // konstruktor
			this.cislo1=cis1;this.cislo2=cis2;this.cislo3=cis3;	}	}
	native static int vstupObjekt(testTrida objekt);
	native static testTrida vstupVystupObjekt(testTrida objekt);
	public static void main(String [] args) {
		testTrida testObjekt1 = new testTrida(10,11,12);
		testTrida testObjekt2 = new testTrida(100,101,102);
		
	}
}

Zde je header : HlavniTrida_testTrida 

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HlavniTrida_testTrida */

#ifndef _Included_HlavniTrida_testTrida
#define _Included_HlavniTrida_testTrida
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif

A zde je header : HlavniTrida :  

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
#include "HlavniTrida_testTrida.h"
/* Header for class HlavniTrida */

#ifndef _Included_HlavniTrida
#define _Included_HlavniTrida
#ifdef __cplusplus
extern "C" {
#endif

/*
 * Class:     HlavniTrida
 * Method:    vstupObjekt
 * Signature: (LHlavniTrida/testTrida;)I
 */
JNIEXPORT jint JNICALL Java_HlavniTrida_vstupObjekt
  (JNIEnv *, jclass, jobject);

/*
 * Class:     HlavniTrida
 * Method:    vstupVystupObjekt
 * Signature: (LHlavniTrida/testTrida;)LHlavniTrida/testTrida;
 */
JNIEXPORT jobject JNICALL Java_HlavniTrida_vstupVystupObjekt
  (JNIEnv *, jclass, jobject);

#ifdef __cplusplus
}
#endif
#endif

A zde je zdroják HlavniTrida.c 

#include <jni.h>
#include <stdio.h>
#include "HlavniTrida.h"
#include "HlavniTrida_testTrida.h"
typedef struct _MyStruct {
  int cis1;
  int cis2;
  int cis3;
} ObjektTest;

JNIEXPORT jint JNICALL Java_HlavniTrida_vstupObjekt (JNIEnv *env, jobject obj, jobject objTriHodnot) {
	ObjektTest testObjekt1;

}

JNIEXPORT jobject JNICALL Java_HlavniTrida_vstupVystupObjekt (JNIEnv *env, jclass obj, jobject objektTriHodnot){
	ObjektTest testObjekt2;
}
notbeginner
Java › šifrování
23. 5. 2013   #176550

Snad ti to k něčemu bude http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html a zde je postup jak si stím hrát , balik rozbal v kde máš Java RunTime, na stejnou úroveň kde \lib a \bin ( JavaJRE ... je můj adresář) 

/*1) stáhnu balík z http://www.oracle.com/…-429243.html
 *2) Rozbalim a adresar JCE nakopiruji do C:\ProgramFiles\JavaJRE\ ..... ->>>> C:\ProgramFiles\JavaJRE\jce  */
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
public class Z_01CryptografieDES {
	public static void main(String [] args) {
		try{
			KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
			SecretKey myDesKey = keygenerator.generateKey();
		    //System.out.println("keygenerator :" + myDesKey);
		    Cipher desCipher;
 		    // Create the cipher 
		    desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
 		    // Initialize the cipher for encryption
		    desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
 		    //sensitive information
		    byte[] text = "No body can see me".getBytes();
 		    System.out.println("Text [Byte Format] : " + text);
		    System.out.println("Text : " + new String(text));
 		    // Encrypt the text
		    byte[] textEncrypted = desCipher.doFinal(text);
 		    System.out.println("Text Encryted : " + textEncrypted);
 		    // Initialize the same cipher for decryption
		    desCipher.init(Cipher.DECRYPT_MODE, myDesKey);
 		    // Decrypt the text
		    byte[] textDecrypted = desCipher.doFinal(textEncrypted);
 		    System.out.println("Text Decryted : " + new String(textDecrypted));
 		}catch(NoSuchAlgorithmException e){
			e.printStackTrace();
		}catch(NoSuchPaddingException e){
			e.printStackTrace();
		}catch(InvalidKeyException e){
			e.printStackTrace();
		}catch(IllegalBlockSizeException e){
			e.printStackTrace();
		}catch(BadPaddingException e){
			e.printStackTrace();
		} 	}
}
notbeginner
Java › [Swing] Feel and Look
23. 5. 2013   #176548

Takže jsem to zjistil sám a trochu i s pomoci sakala91 a vzhledem k tomu, že by bylo vhodne pridat řešení tak se o něj podělím. 1)  zmena na jiné GUI ve Swingu jenž je součásti JDK nebo JRE 

//  http://docs.oracle.com/…el/plaf.html
import java.awt.*;
import javax.swing.*;
public class B12_JineGUI extends JFrame{
	private JButton tlac1,tlac2,tlac3;
	private JTextField editText;
	private void ZmenaGUI() {
		/* Nimbus =  "javax.swing.plaf.nimbus.NimbusLookAndFeel"
		 * Metal = "javax.swing.plaf.metal.MetalLookAndFeel"
		 * CDE/Motif = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"
		 * Windows = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
		 * WindowsClassic = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"	*/
		String LOOKANDFEEL = "javax.swing.plaf.nimbus.NimbusLookAndFeel"; // zvolen NIMBUS
		try{
			UIManager.setLookAndFeel(LOOKANDFEEL);
			SwingUtilities.updateComponentTreeUI(this);
			this.pack();
		}catch(Exception e){	e.printStackTrace();	}	}
	private void NastaveniKonstruktoruOkna(){
		this.setLayout(null);
		this.getContentPane().setBackground(Color.white);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		this.setSize(600,400);this.setLocation(400,250);	}
	private void RozvrzeniKomponent() {
		tlac1 = new JButton("Blablabla");this.add(tlac1);
		tlac1.setBounds(130,20,100, 20);
		tlac2 = new JButton("Testovaci Rezim");this.add(tlac2);
		tlac2.setBounds(230,190,200, 40);
		tlac3 = new JButton("Ano to je text");this.add(tlac3);
		tlac3.setBounds(30,220,150, 20);
		editText = new JTextField();this.add(editText);
		editText.setBounds(190,50,200,60);	}
	B12_JineGUI(){
		super.setTitle("JFrame okno JDK s jinym GUI");
		ZmenaGUI();  // tato metoda musi byt vzdy pred nastavenim JFRAME
		NastaveniKonstruktoruOkna();
		RozvrzeniKomponent();	}
	public static void main(String [] args) {
		new B12_JineGUI().setVisible(true);	}
}

2) Použiji-li jiné GUI z nějaké GUI distribude např. http://personales.ya.com/nimrod/faq-en.html pak se to musí vyřešit přidáním externího *.jar přes ClassPath 

// nutne pridat do classpath (nastaveni Eclipse) - Run - RunConfiguration - ClassPath 
//- BootStrap Entry - Add external *.jar - a pridat cestu
import java.awt.*;
import javax.swing.*;
public class B13_JineGNUGUI extends JFrame{
	private JButton tlac1,tlac2,tlac3;
	private JTextField editText;
	private void ZmenaGUI() {
		String LOOKANDFEEL = "com.nilo.plaf.nimrod.NimRODLookAndFeel"; // zvolen NIMROD
		try{
			UIManager.setLookAndFeel(LOOKANDFEEL); 
			SwingUtilities.updateComponentTreeUI(this);
			this.pack();
		}catch(Exception e){	e.printStackTrace();	}	}
	private void NastaveniKonstruktoruOkna(){
		this.setLayout(null);
		this.getContentPane().setBackground(Color.white);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		this.setSize(600,400);this.setLocation(400,250);	}
	private void RozvrzeniKomponent() {
		tlac1 = new JButton("Blablabla");this.add(tlac1);
		tlac1.setBounds(130,20,100, 20);
		tlac2 = new JButton("Testovaci Rezim");this.add(tlac2);
		tlac2.setBounds(230,190,200, 40);
		tlac3 = new JButton("Ano to je text");this.add(tlac3);
		tlac3.setBounds(30,220,150, 20);
		editText = new JTextField();this.add(editText);
		editText.setBounds(190,50,200,60);	}
	B13_JineGNUGUI(){
		super.setTitle("JFrame okno s ext *.jar s jinym GUI");
		ZmenaGUI();  // tato metoda musi byt vzdy pred nastavenim JFRAME
		NastaveniKonstruktoruOkna();
		RozvrzeniKomponent();	}
	public static void main(String [] args) {
		new B13_JineGNUGUI().setVisible(true);	}
}

3) Pokud člověk chce mít pernamentně odlišné GUI je nutné v JRE/lib mít soubor "swing.properties" s obsahem "swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel" například pro typ NIMBUS jenž je k dispozici pro javax v JRE.

notbeginner
Java › [Swing] Feel and Look
22. 5. 2013   #176483

Dobrý den , máte někdo zkušenosti s implementaci free(GNU) Feel and LOOK (např. http://www.muntjak.de/hans/java/tinylaf/index.html ). Změnit standardní GUI jež jsou součástí JDK v přes zdrojový kód dokáži nevím jak dokázat zobrazit ty jiné.  1) Nevim kam to nakopírovat ( do JDK,JRE či Projektu atd) 2) Jak to nastavit jako defultní zobrazení a kde v Eclipse ?  3) Či lze to udělat tak abych měl standardní GUI z SDK  a jednotlivé projekty či public classy v jednom projektu nastavené pro různé GUI  ?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý