Tag: java

Spring自动assembly使用@Configurable

我玩的想法是使用Spring @Configurable和@Autowire将DAO注入到域对象中,以便它们不需要直接了解持久层。 我试图按照http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html#aop-atconfigurable ,但我的代码似乎没有效果。 基本上,我有: @Configurable public class Artist { @Autowired private ArtistDAO artistDao; public void setArtistDao(ArtistDAO artistDao) { this.artistDao = artistDao; } public void save() { artistDao.save(this); } } 和: public interface ArtistDAO { public void save(Artist artist); } 和 @Component public class ArtistDAOImpl implements ArtistDAO { @Override public void save(Artist artist) { System.out.println("saving"); […]

在Android中分页文字

我正在为Android编写一个简单的文本/电子书阅读器,所以我使用了TextView来向用户显示HTML格式的文本,所以他们可以通过来回浏览页面中的文本。 但我的问题是,我不能在Android中分页。 我不能(或者我不知道如何)从断行和分页algorithm中得到适当的反馈,在这些algorithm中, TextView用来将文本分解成行和页面。 因此,我无法理解内容在实际显示中的结束位置,以便我从下一页的剩余内容继续。 我想find办法来克服这个问题。 如果我知道屏幕上画的最后一个字是什么,我可以很容易地把足够的字符填满一个屏幕,并且知道实际的绘画完成的地方,我可以继续下一页。 这可能吗? 怎么样? 类似的问题已经在StackOverflow上多次提出,但没有提供令人满意的答案。 这些只是其中的几个: 如何在Android中将长文本分页成页面? 在Android的电子书阅读器分页问题 根据呈现的文本大小分页文本 有一个答案,似乎工作,但速度缓慢。 它添加字符和行,直到页面被填充。 我不认为这是一个很好的方法来做页面打破: 如何在Android中将样式文本分解成页面? 而不是这个问题,恰巧PageTurner电子书阅读器做它大部分是正确的,虽然它在某种程度上是缓慢的。 https://github.com/nightwhistler/pageturner PS:我不仅限于TextView,而且我知道换行和分页algorithm可能相当复杂( 如在TeX中 ),所以我不是在寻找最佳答案,而是一个相当快速的解决scheme,可以被用户。 更新:这似乎是得到正确答案的好开始: 有没有办法检索TextView的可见行数或范围? 答案:完成文字布局后,可以找出可见的文字: ViewTreeObserver vto = txtViewEx.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = txtViewEx.getViewTreeObserver(); obs.removeOnGlobalLayoutListener(this); height = txtViewEx.getHeight(); scrollY = txtViewEx.getScrollY(); Layout layout = txtViewEx.getLayout(); firstVisibleLineNumber = […]

什么代码折叠插件在Eclipse 3.6上工作?

我是新的Java开发环境,我发现很难妥善pipe理我的代码。 .Net提供了#regions这是一个很好的代码pipe理解决scheme。 我正在使用Eclipse环境进行Java开发。 我尝试了Coffee-Bytes,但是在Eclipse 3.6中 , Coffee-Bytes 代码折叠不起作用 ,至less在我的身边。 我已经configuration了它,但它不起作用。 有人可以猜测可能是什么问题? 有没有其他的Eclipse代码折叠插件?

你如何克隆一个BufferedImage

我有一个有许多bufferedimages的对象,我想创build一个新的对象,将所有的bufferedimages拷贝到新的对象中,但这些新的图像可能会被改变,我不希望原始的对象图像被改变新的对象图像。 这是清楚的吗? 这是可能做到的,任何人都可以提出一个好的方法来做到这一点吗? 我曾经想过getSubImage,但是读到的地方是,任何对子图像的改变都会被重新选回父图像。 我只是想能够得到一个新的完全分离的复制或克隆的BufferedImage

数组是一个原始types还是一个对象(或者其他的东西)?

这个问题基本上是不言自明的。 我一直无法find一个数组的API(除了这个数组 ,但这只是定义了一堆用于处理实际数组的静态帮助函数)。 如果没有它的类,这似乎表明一个数组不能是一个Object 。 然而,事实上,一个数组具有类似于.equals()和.clone()这样的可调用length和方法的公共字段似乎表明(完全相反)。 原始数组的奇怪表示和行为的解释是什么? 作为一个说明,我试图在数组的.clone()方法上使用“Open Implementation”Eclipsefunction,希望能够查看在何处以及如何定义此方法(因为它表示int [ ]从Object取代它),但它实际上导致我的整个Eclipse冻结和崩溃…

为什么Javatypes的参数不能有一个下界?

我收集你不能将Javagenericstypes参数绑定到下限(即使用super关键字)。 我正在阅读Angelika Langer Generics常见问题解答在这个问题上所说的话 。 他们说基本上归结为一个无用的下界(“没有任何意义”)。 我不相信。 我可以想象他们的使用,以帮助您更灵活的图书馆方法,产生一个打字结果的调用者。 想象一下,创build一个用户指定大小的数组列表并填充空string的方法。 一个简单的声明将是 public static ArrayList<String> createArrayListFullOfEmptyStrings(int i); 但这对您的客户来说是不必要的限制。 为什么他们不能像这样调用你的方法: //should compile List<Object> l1 = createArrayListFullOfEmptyStrings(5); List<CharSequence> l2 = createArrayListFullOfEmptyStrings(5); List<String> l3 = createArrayListFullOfEmptyStrings(5); //shouldn't compile List<Integer> l4 = createArrayListFullOfEmptyStrings(5); 在这一点上,我会试图尝试下面的定义: public static <T super String> List<T> createArrayListFullOfEmptyStrings(int size) { List<T> list = new ArrayList<T>(size); for(int i = […]

运行shell命令,虽然Android上的Java代码?

我有一个应用程序应该使用一些shell命令将文件从SD卡复制到/ system / media /。 这将需要根,我正在根植设备上进行testing。 我正在使用运行时执行shell命令,但它不起作用。 这是我的运行时间 public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{ Process p = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(p.getOutputStream()); for (String tmpCmd : commands) { os.writeBytes(tmpCmd+"\n"); } os.writeBytes("exit\n"); os.flush(); } 但我的logcat只显示其中两个没有被拒绝 07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh) 07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell […]

java.net.UnknownHostException:服务器的主机名无效:local

我应该采取什么措施来解决这个错误: java.net.UnknownHostException: Invalid hostname for server: local 我在Android模拟器中添加了新的虚拟主机名,但结果返回 java.net.UnknownHostException virtualhostname at java.net.InetAddress.lookUpHostByName(InetAddress.java:506) 当我在我的电脑上键入我的虚拟主机URL时,它会显示。 再次,当我在Emulator上运行并检查Logcat时,我无法读取或检查HTTP状态(如果200,202或错误代码号)。 它只是返回到UnknownHostException

如何从Java中的string修剪文件扩展名?

在Java中修改后缀的最有效的方法是什么? title part1.txt title part2.html => title part1 title part2

在JAVA中通过gmail smtp服务器发送电子邮件

这个代码有什么问题? 不知何故,它正在进入Transport.send(message);行无限循环Transport.send(message); 行,没有错误信息,没有例外,也许是无限循环(我不知道,因为我不等待超过5-10分钟) final String username = "<mail_name>"; final String password = "<password>"; Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.port", "465"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("<mail_from>@gmail.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("<mail_to>@gmail.com")); message.setSubject("Test […]