很简单的问题,但我不能这样做.我有3个班:
DrawCircle 类
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class DrawCircle extends JPanel
{
private int w, h, di, diBig, diSmall, maxRad, xSq, ySq, xPoint, yPoint;
public DrawFrame d;
public DrawCircle()
{
w = 400;
h = 400;
diBig = 300;
diSmall = 10;
maxRad = (diBig/2) - diSmall;
xSq = 50;
ySq = 50;
xPoint = 200;
yPoint = 200;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.blue);
g.drawOval(xSq, ySq, diBig, diBig);
for(int y=ySq; y<ySq+diBig; y=y+diSmall*2)
{
for(int x=xSq; …Run Code Online (Sandbox Code Playgroud) 包装代码行的首选方法是什么,特别是涉及长参数列表时?
有几个与包装线有关的问题(比如在编写代码时是否包装文本?还是行宽格式标准),但是我找不到一个涵盖一行代码的地方.
假设我们有一行代码可以像这个例子一样继续前进:
int SomeReturnValue = SomeMethodWithLotsOfArguments(Argument1, Argument2, Argument3, Argument4);
Run Code Online (Sandbox Code Playgroud)
怎么应该包裹?
以下是我能想到的几种方式,以及它们的一些缺点:
int SomeReturnValue = SomeMethodWithLotsOfArguments(Argument1, Argument2,
Argument3, Argument4);
Run Code Online (Sandbox Code Playgroud)
我个人不喜欢这个选项,因为格式似乎在视觉上将参数列表与我试图调用的方法分开,特别是因为在新行上的orphanged参数正上方有一个赋值等号("=").
所以,有一段时间我采用了以下方法:
int SomeReturnValue = SomeMethodWithLotsOfArguments(Argument1,
Argument2,
Argument3,
Argument4);
Run Code Online (Sandbox Code Playgroud)
这里,参数都捆绑在一起,都在方法的第一个参数的一边.但是,一个问题是,由于选项卡缩进的空格数,参数列表不会总是在第二行中排列.(为格式化输入额外的空格会非常耗时.)
int SomeReturnValue = SomeMethodWithLotsOfArguments(
Argument1,
Argument2,
Argument3,
Argument4
);
Run Code Online (Sandbox Code Playgroud)
我实际上喜欢这种格式,因为它的视觉吸引力,但它也可以在视觉上将参数与列表所属的方法分开.另外,我更喜欢单个方法调用而不占用太多行.
所以,我的问题是,如果不首先考虑防止行代码过长的问题,你会如何推荐包装代码行?具体来说,当涉及长参数列表时,哪里是打破一行代码的好地方?
几天前,有几个关于缓冲区溢出漏洞的问题(例如Java是否有缓冲区溢出?,Secure C和大学 - 经过缓冲区溢出训练,仅举几例),这些问题可能发生在C等命令式编程语言中.
在函数式编程中,(从我尝试Haskell的非常有限的曝光),我可以看到缓冲区溢出等漏洞不会发生,因为这些问题是由于改变程序状态或某个区域而导致的.记忆.(如果我错了,请纠正我.)
如果不考虑编译器,解释器或执行环境中存在的漏洞的可能性,功能编程范例中是否存在任何类型的安全漏洞?功能编程中是否存在任何特定类型的漏洞,而不是命令式编程中存在哪些漏洞?
当我尝试:
LinkedList<String> stringList = new LinkedList<String>();
Run Code Online (Sandbox Code Playgroud)
我收到以下编译错误:
type LinkedList does not take parameters
Run Code Online (Sandbox Code Playgroud)
我错过了什么?你不能这样做吗?
我最近购买了Filthy Rich Clients这本书,我发现它非常有用和有趣.在本书的一个例子的基础上,我尝试实现一个自定义ScrollPane,它在要显示的组件的视图底部显示一个"阴影".我最终得到了下面的代码.它工作但不完美.特别是当我通过拖动滚动条滚动窗格时,一切正常,绘画非常流畅.但是当我用鼠标滚动滚动时,阴影闪烁,我不明白为什么.谁能帮我?
编辑:滚动窗格中的任何组件都会发生同样的事情.编辑代码以显示两个帧以查看问题.
编辑2:我已将问题与滚动窗格处理鼠标滚轮事件的方式隔离开来.滚动滚动窗格时,根据滚动的方向稍微向上或向下复制视口的内容,然后绘制进入视图的区域.我的代码使整个组件"脏"但是在组件移动了内容之后.所以你会立刻看到"影子"渐变不合适,直到发出重画.有关如何禁用此功能的任何想法?
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Container;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.RepaintManager;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame("Table");
JFrame f1 = new JFrame("Text Area");
Object[] names = new Object[] { "Title", "Artist", "Album" };
String[][] data = new String[][] {
{ "Los Angeles", "Sugarcult", "Lights Out" },
{ …Run Code Online (Sandbox Code Playgroud) 当映射中的条目具有弱键引用时,该条目将在下一次垃圾回收时被删除,对吧?
我可以理解该类MapMaker提供了该weakKeys方法。但我对 感到困惑weakValue()。我应该什么时候使用weakValueor softValuein MapMaker?
在Thumbnailator中,我正在制作缩略图.
如果图像尺寸为400*300,如果我做了以下事情,
Thumbnails.of(new File("original.jpg"))
.size(160, 160)
.toFile(new File("thumbnail.jpg"));
Run Code Online (Sandbox Code Playgroud)
它创建了160*120的缩略图.
我想要的是如果我上传400*300图像,它将居中缩放,这样我将成为300*300然后它将缩略图.
我浏览了文档,甚至我在评论中发布了相同的内容,但没有运气.
我使用以下代码将gif文件转换为jpg文件,它可以工作,但结果jpg文件与原始gif文件的质量不同,为什么?有什么方法可以提高质量?
try
{
ImageIO.write(ImageIO.read(new File("C:/abc.gif")),"jpg",new File("C:/abc.jpg"));
}
catch (Exception e) { e.printStackTrace(); }
Run Code Online (Sandbox Code Playgroud)
那么,从另一个角度来问这个问题,用上面的方法,如何提高输出质量?