Praticamente qualquer programa aceita um "colar" de texto, que é quase por padrão mundial a combinação das teclas CTRL + V. Mas quando o que foi copiado não é um texto (um arquivo ou um print da tela por exemplo), precisamos de uns passos extras e é sobre isso o tutorial abaixo:
Trabalhando com Clipboard (área de transferência)
Mostrando postagens com marcador Java. Mostrar todas as postagens
Mostrando postagens com marcador Java. Mostrar todas as postagens
sexta-feira, 12 de junho de 2015
segunda-feira, 31 de dezembro de 2012
TextPane sem quebra de linha.
Melhor forma de evitar a quebra de linha em um TextPane é sobrescrevendo o método Scrollable Tracks Viewport Width
Exemplo:
private JTextPane noWrapTextPane = new JTextPane() {
@Override
public boolean getScrollableTracksViewportWidth() {
return getUI().getPreferredSize(this).width
<= getParent().getSize().width;
}
};
Exemplo:
private JTextPane noWrapTextPane = new JTextPane() {
@Override
public boolean getScrollableTracksViewportWidth() {
return getUI().getPreferredSize(this).width
<= getParent().getSize().width;
}
};
Marcadores:
Java,
Java Desktop,
Swing Application Framework
sexta-feira, 14 de dezembro de 2012
Valores montários em Real com bean:writer do Stuts
Valores montários em Real com bean writer do Stuts.
O format do BeanWrite do Struts 1 utiliza o DecimalFormat do Java, isso quer dizer que utilizar vírgula como separação dos centavos (##.000,00) irá causar erro, já que "." é o separador decimal ou monetário e "," é o separador de grupos.
Para resolver esse problema você pode utilizar o atributo locale passando um objeto Locale do Java.
Exemplo:
...
<%@ page import="java.util.Locale"%>
<%
Locale meuLocal = new Locale( "pt", "BR" );
request.getSession().setAttribute("meuLocal", meuLocal);
%>
...
< bean:write name="lst" property="saldo" locale="meuLocal" format="##,000.00"/ >
...
sexta-feira, 21 de setembro de 2012
Para aqueles que não lembram de cabeça todas as variáveis do System.properties, esse site tem uma tabela com as principais.
Como não poderia deixar de ser, criei um “Java System Properties Debug” listar essas propriedades.
Site: http://www.mindspring.com/~mgrand/java-system-properties.htm
Listagem rápida:
file.encoding, file.encoding.pkg, file.separator, java.class.path, java.class.version, java.compiler, java.home, java.io.tmpdir, java.version, java.vendor, java.vendor.url, line.separator, os.name, os.arch, os.version, path.separator, user.dir, user.home, user.language, user.name, user.region e user.timezone
Como não poderia deixar de ser, criei um “Java System Properties Debug” listar essas propriedades.
Site: http://www.mindspring.com/~mgrand/java-system-properties.htm
Listagem rápida:
file.encoding, file.encoding.pkg, file.separator, java.class.path, java.class.version, java.compiler, java.home, java.io.tmpdir, java.version, java.vendor, java.vendor.url, line.separator, os.name, os.arch, os.version, path.separator, user.dir, user.home, user.language, user.name, user.region e user.timezone
Marcadores:
Java,
NetBeans,
Swing Application Framework
ImageUtil
ImageUtil
E quando você precisa de um redimensionador em lote de imagens?
você pode baixar algum ou ter todo o trabalho de desenvolver um.
Resolvi desenvolver mas com intenção de resolver um problema (redimensionar mais de 100 imagens) e brincar um pouco com o Java pra Desktop.
Link: http://sourceforge.net/projects/mvbosagendasimp/files/imageUtil.zip/download
Para algo mais profissional (mais opções): http://sourceforge.net/projects/jiu/files/
Marcadores:
Java,
NetBeans,
Swing Application Framework
sexta-feira, 3 de agosto de 2012
Facilitando sua vida com Replica.
Nesta semana precisei criar comando inserts com base nos dados de uma planilha e sabia que utilizar Replica facilitaria meu trabalho.
Passo 1: Exportar planilha no fomato CSV
Passo 2: Importar dados para o Replica
Obter dados > Arquivo (CTRL+F)
Passo 3: Preparar comando SQL, que seria mais ou menos:
insert into tbcidade(id, uf, cidade) values (nextval('seq_cidade'), '@', '@');
Passo 4: Gerar SQL.
Especificar varável, delimitador e Replicar por ELEMENTO.
Replica: https://sourceforge.net/projects/mvbos-replica/files/dist/
Planilha com uf/estado: https://docs.google.com/spreadsheet/ccc?key=0AlrjzjT1KgoTdEJ5eWdZNTBPdTlSLUNnVWxxOWw4eVE
Passo 1: Exportar planilha no fomato CSV
Passo 2: Importar dados para o Replica
Obter dados > Arquivo (CTRL+F)
Passo 3: Preparar comando SQL, que seria mais ou menos:
insert into tbcidade(id, uf, cidade) values (nextval('seq_cidade'), '@', '@');
Passo 4: Gerar SQL.
Especificar varável, delimitador e Replicar por ELEMENTO.
Replica: https://sourceforge.net/projects/mvbos-replica/files/dist/
Planilha com uf/estado: https://docs.google.com/spreadsheet/ccc?key=0AlrjzjT1KgoTdEJ5eWdZNTBPdTlSLUNnVWxxOWw4eVE
Marcadores:
Java,
NetBeans,
Swing Application Framework
sexta-feira, 20 de julho de 2012
Aprendendo sobre Objetos Java criando um Jogo.
Neste tutorial o autor começa a explicar Orientação a objetos criando um jogo utilizando a ferramenta Greenfoot Object World, criada para isso mesmo.
O tutorial continua nas edições da Oracle Java Magazine, sendo a primeira e a última (na data deste post).
Links:
Artigo: http://www.oracle.com/technetwork/articles/javase/wombat-basics-135972.html
Greenfoot: http://www.greenfoot.org/overview
Oracle Java Magazine:
http://www.oraclejavamagazine-digital.com/javamagazine/premiere2011?sub_id=iafW9TEyyNSf#pg15
http://www.oraclejavamagazine-digital.com/javamagazine/20120708/?sub_id=D3Ftlezo2a3zq#pg25
O tutorial continua nas edições da Oracle Java Magazine, sendo a primeira e a última (na data deste post).
Links:
Artigo: http://www.oracle.com/technetwork/articles/javase/wombat-basics-135972.html
Greenfoot: http://www.greenfoot.org/overview
Oracle Java Magazine:
http://www.oraclejavamagazine-digital.com/javamagazine/premiere2011?sub_id=iafW9TEyyNSf#pg15
http://www.oraclejavamagazine-digital.com/javamagazine/20120708/?sub_id=D3Ftlezo2a3zq#pg25
sexta-feira, 11 de maio de 2012
Esses dias eu precisava tirar vários PrintScreen para um passo-a-passo, e salvar um por um iria dar muitro trabalho, então como bom programador (preguiçoso) crie um auxiliador, nada luxuoso mas funcional.
Ele copia os textos e nomes de arquivos separados por ';' para uma Textarea e imagens PrintScreen para o mesmo diretório, incrementando numéricamente o nome.
Link: http://sourceforge.net/projects/mvbosagendasimp/files/ClipTart.zip/download
Ele copia os textos e nomes de arquivos separados por ';' para uma Textarea e imagens PrintScreen para o mesmo diretório, incrementando numéricamente o nome.
Link: http://sourceforge.net/projects/mvbosagendasimp/files/ClipTart.zip/download
domingo, 29 de abril de 2012
Projetos.
Em meus anos de programação, além de trabalhos realizados nas empresas em que trabalhei, tive a oportunidade de desenvolver por aprendizado ou curiosidade diversos sistemas, tanto para Web quanto para Desktop, além de alguns tutoriais.
Alguns dos aplicativos que desenvolvi encontram-se para download no SourceForge (http://sourceforge.net/users/marcusbecker), onde destaco: Split-x (um simples divisor de arquivos), Replica (Ferramenta para desenvolvedores para auxiliar no substituição de dados) e MVBOScript/Framework (projeto de TCC que utiliza uma linguagem própria e modelos pré-definidos para agilizar o desenvolvimento).
Entre Sites e sistemas Web posso citar: RMA Online – sistema para controle de RMA com controle de níveis de acesso de usuário (http://mvbos.com.br/rmaonline/).
Site e Portal do Instituto Zaico – (http://www.zaico.com.br/portal) onde foi desenvolvido um CMS para controle do Portal.
Dori Alimentos - (http://www.dori.com.br) Uma Loja virtual desenvolvida em Java.
Em meu Blog (http://meumundojava.blogspot.com.br) encontram-se artigos e tutoriais que acho interessantes para desenvolvedores.
Alguns dos aplicativos que desenvolvi encontram-se para download no SourceForge (http://sourceforge.net/users/marcusbecker), onde destaco: Split-x (um simples divisor de arquivos), Replica (Ferramenta para desenvolvedores para auxiliar no substituição de dados) e MVBOScript/Framework (projeto de TCC que utiliza uma linguagem própria e modelos pré-definidos para agilizar o desenvolvimento).
Entre Sites e sistemas Web posso citar: RMA Online – sistema para controle de RMA com controle de níveis de acesso de usuário (http://mvbos.com.br/rmaonline/).
Site e Portal do Instituto Zaico – (http://www.zaico.com.br/portal) onde foi desenvolvido um CMS para controle do Portal.
Dori Alimentos - (http://www.dori.com.br) Uma Loja virtual desenvolvida em Java.
Em meu Blog (http://meumundojava.blogspot.com.br) encontram-se artigos e tutoriais que acho interessantes para desenvolvedores.
quinta-feira, 26 de abril de 2012
quarta-feira, 4 de abril de 2012
MVBOScript Framework - Extensão do projeto de TCC
Estendendo meu projeto de TCC (MVBOScript) criei um Framework para auxiliar no trabalho de criação de criação dos arquivos fonte XML (Container).
Segue abaixo link contento maiores informações e donwload do Framework:
quarta-feira, 18 de janeiro de 2012
Liferay: Buscando imagens no Image Gallery
HTML:
Classe Portlet:
<form action="<liferay-portlet:actionURL name="igFind" portletConfiguration="true" />" method="post" name="<portlet:namespace />fm">
<input type="text" name="<portlet:namespace />find" />
<input type="submit" value="Find" />
</form>
Classe Portlet:
import java.util.List;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import com.liferay.portal.kernel.dao.orm.DynamicQuery;
import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
import com.liferay.portal.kernel.dao.orm.OrderFactoryUtil;
import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
import com.liferay.portlet.imagegallery.model.IGImage;
import com.liferay.portlet.imagegallery.service.IGImageLocalServiceUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;
public class NewPortlet extends MVCPortlet {
public void igFind(ActionRequest request, ActionResponse response){
String find = ParamUtil.getString(request, "find");
ClassLoader loader = PortalClassLoaderUtil.getClassLoader();
DynamicQuery query = DynamicQueryFactoryUtil.forClass(IGImage.class, loader)
.add(PropertyFactoryUtil.forName("name").eq(find))
.addOrder(OrderFactoryUtil.asc("name"));
try {
Listresults = IGImageLocalServiceUtil.dynamicQuery(query, 0, 100);
for(IGImage ig : results){
System.out.println(ig.getName());
}
} catch (SystemException e) {
e.printStackTrace();
}
}
}
quarta-feira, 11 de janeiro de 2012
Resolvendo problemas de codificação nos textos.
Resolvendo problemas de codificação nos textos ao ler/gravar arquivos de texto utilizando InputStreamReader e OutputStreamWriter.
Para ler:
Para gravar:
Para ler:
private void loadFile() {
StringBuilder conteudo = new StringBuilder(500);
try {
if (selectedFile.exists()) {
InputStreamReader is = new InputStreamReader(new FileInputStream(selectedFile), Charset.forName("iso-8859-1"));
BufferedReader reader = new BufferedReader(is);
String linha = null;
while ((linha = reader.readLine()) != null) {
conteudo.append(linha).append(System.getProperty("line.separator"));
}
reader.close();
}
} catch (FileNotFoundException ex) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
}
jTextPaneContent.setText(conteudo.toString());
}
Para gravar:
private void saveFile() {Código fonte contendo um exemplo funcional.
OutputStreamWriter osw = null;
try {
osw = new OutputStreamWriter(new FileOutputStream(selectedFile), Charset.forName("iso-8859-1"));
osw.write(jTextPaneContent.getText());
} catch (IOException ex) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (osw != null) {
osw.close();
}
} catch (IOException ex) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
Marcadores:
http://www.blogger.com/img/blank.gif,
Java
segunda-feira, 4 de julho de 2011
domingo, 9 de janeiro de 2011
Trabalhando com Liferay 6.
Já faz alguns meses que estou trabalhando com Liferay e devido ao seu mundo complexo e cheio de recusos,
não consigo ter tempo para escrever.
Assim que possível pretendo postar alguns tutoriais e dicas. Por enquanto fica o aviso de que vale investir
nessa poderosa ferramenta.
http://www.liferay.com/
não consigo ter tempo para escrever.
Assim que possível pretendo postar alguns tutoriais e dicas. Por enquanto fica o aviso de que vale investir
nessa poderosa ferramenta.
http://www.liferay.com/
sexta-feira, 24 de setembro de 2010
Minha experiência profissional (na versão falando de mim)
Minha experiência profissional é ainda de iniciante. Não que eu não tenha experiência profissional na área de programação, mas o fato é que adoro criar.Programação para mim é a arte de criar. Não criei ainda tudo que quero criar.
Comecei trabalhando com manutenção de computadores por volta de 2001. Me dava muito prazer resolver problemas e encaixar peças. Isso até conhecer o PHP, uma linguagem de programação simples para o desenvolvimento web.
Criar sistemas para resolver problemas e atender necessidades tornou-se meu novo prazer.
Trabalhei bastante com PHP, indo do básico ao avançado.
Quando percebi que já tinha um conhecimento consistente, procurei uma nova linguagem de programação.
Me identifiquei com Java e sua vantagem de portabilidade.
Poderia desenvolver agora, não só para web, mas também para desktop e celular.
Após diversos livros lidos e sistemas desenvolvidos, consegui obter minha certificação.
Logo após a certificação fui trabalhar numa empresa de consultoria cujo diferencial era o desenvolvimento de simuladores para jogos de negócio.
Criar simuladores ou jogos é uma tarefa árdua. Ambos se baseiam em aspectos reais. Levar a realidade para o mundo virtual é complexo e demorado.
No meu caso, nesta empresa, eu desenvolvia jogos e simuladores.
Essa foi uma experiência gratificante já que a lógica de desenvolvimento de simuladores é diferente da lógica dos sistemas convencionais.
Hoje tenho experiência em desenvolvimento de portais web, aplicativos pra celular, sistemas para controle de caixa, estoque e simuladores para jogos de negócio e minha própria linguagem de programação.
Mas ainda assim considero minha experiência pouca se comparado a todos os outros tipos de sistemas que posso criar.
sexta-feira, 3 de setembro de 2010
Criando uma tabela com as colunas de outra tabela no MySQL.
Supondo que você tenha uma tabela chamada contato e nela contenha os campos:
nome, telefone, idade, profissao e salario.
E Algum tempo depois, perceba que esse é um erro de design e precise criar uma tabela especifica para as profissões de seus contatos.
No MySQL você pode criar uma nova tabela já com as colunas e registros de outra tabela facilmente com o código abaixo:
CREATE TABLE contatoProfissao(idProfissao INT NOT NULL AUTO_INCREMENT PRIMARY KEY) AS SELECT profissao, salario FROM contato;
terça-feira, 31 de agosto de 2010
Iniciando JavaDB dentro da sua aplicação.
Para iniciar de forma simples o JavaDB de dentro da sua aplicação, você só precisará de três jars e o código abaixo:
Jars:
derby.jar, derbyclient.jar e derbynet.jar
Código:
PrintWriter pw = new PrintWriter(System.out);try {org.apache.derby.drda.NetworkServerControl servidor = new org.apache.derby.drda.NetworkServerControl(InetAddress.getByName("localhost"), 1527);servidor.start(pw);} catch (Exception ex) {Logger.getLogger(JnApp.class.getName()).log(Level.SEVERE, null, ex);}
Marcadores:
banco de dados,
derby,
Java,
JavaDB
sábado, 19 de junho de 2010
JavaDB: Localizando registros repetidos.
Dois selects simples para verficar registros repetidos no banco de dados:
No segundo, o banco que faz esse trabalho para você.
select distinct(NOME) from CADASTRO_CLIENTE order by NOME;
select * from CADASTRO_CLIENTE as aCom o primeiro select você faz uma verificação visual.
where (
select count(*) from CADASTRO_CLIENTE as b where lower(a.NOME) = lower(b.NOME)
) >= 2 order by NOME;
No segundo, o banco que faz esse trabalho para você.
Marcadores:
banco de dados,
derby,
Java,
JavaDB
sexta-feira, 27 de novembro de 2009
Um simples replicador de código.
Se você já teve que escrever códigos HTML, comandos SQL
ou até textos padronizados que se diferenciam em apenas algumas palavras,
já se frustrou com o trabalho repetitivo e chato
ou apelou diversas vezes para o localizar / substituir dos editores de texto.
O Replica tem recursos específicos para gerar novas tags substituindo os dados nos pontos específicos do texto.
Posto ele aqui, pois tem sido muito útil para mim.
Link para download: https://sourceforge.net/projects/mvbos-replica/
ou até textos padronizados que se diferenciam em apenas algumas palavras,
já se frustrou com o trabalho repetitivo e chato
ou apelou diversas vezes para o localizar / substituir dos editores de texto.
O Replica tem recursos específicos para gerar novas tags substituindo os dados nos pontos específicos do texto.
Posto ele aqui, pois tem sido muito útil para mim.
Link para download: https://sourceforge.net/projects/mvbos-replica/
Criando tags option de um select HTML com base nos meses.
Marcadores:
ferramentas para desenvolvedores,
Java,
Swing Application Framework
Assinar:
Postagens (Atom)