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;
}
};
segunda-feira, 31 de dezembro de 2012
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"/ >
...
quinta-feira, 25 de outubro de 2012
Apostila para Java iniciantes.
Realmente uma apostila bem legal sobre Java para iniciantes da Caelum:
http://www.caelum.com.br/download/caelum-java-objetos-fj11.pdf
http://www.caelum.com.br/download/caelum-java-objetos-fj11.pdf
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
Assinar:
Postagens (Atom)