如何使用Visual Studio 2008展开或折叠项目中的所有区域?
我想知道内部类的标准实践(在Java中,但我认为它适用于所有OO语言).所以我有一个JFrame子类ControllerWindow,它包含一个MapPanel我绘制的JPanel子类(因此它需要覆盖paintComponent方法),并且需要实现一个鼠标监听器.我当前的解决方案是MapPanel在一个单独的类中实现MouseListener,但是当我向那个管理我的课程的人展示它时,他似乎认为(我们有一点语言障碍)这应该在内部类中在ControllerWindow或至少MouseListener应该是一个内部类.
所以我的问题是这里的标准解决方案是什么,将MouseListener放在内部类中,将JPanel放在不同的内部类中,还是放在它的单独类中?JPanel在一个内部类中实现MouseListener?为什么?
对我来说最重要的是它有效,但我想知道并理解这些事情背后的标准做法,如果可能的话.
编辑:下面的当前代码的非常简化版本.
class ControllerWindow extends JFrame{
...
MapPanel drawPanel = new MapPanel();
...
}
Run Code Online (Sandbox Code Playgroud)
和一个单独的类:
class MapPanel extends JPanel implements MouseListener{
...
public void paintComponent(Graphics g){
...//fillRects etc.
}
//MouseListener methods
public void mouseReleased(MouseEvent e){
requestFocus();
...
repaint()
...
}
public void mousePressed(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
}
Run Code Online (Sandbox Code Playgroud)
也可能是这种情况,将两个类放在同一个文件中是可以接受的吗?我没有设想使用MapPanel除了以外的任何东西ControllerWindow.
几年前,我使用UCINET进行社交网络分析.Theese的日子我想再次使用SNA - 但这次我更喜欢统一的分析框架 - 对我而言是R.
我看过sna和statnet文档,但有点不知所措.
我想做的事情:首先:加载一个直接从例如网络测量中拉出的二分/入射矩阵(通常很有价值).将此矩阵转换为两个邻接矩阵'(通过隶属关系和案例分类).它也可以是由案例矩阵定向的有价值的案例.
第二步:加载顶点属性的文件(也来自例如websurvey数据).
第三:然后根据某些中心度量绘制具有例如顶点大小的图形,着色并通过一些顶点属性标记,仅绘制具有超过特定阈值的值的边缘.
这是一个迷你关联矩阵:
data <- structure(list(this = c(0, 1, 0, 1, 1, 2, 0, 1, 3),
that = c(1, 1, 3, 0, 0, 0, 2, 1, 0),
phat = c(0, 0, 2, 1, 0, 0, 1, 2, 0)),
.Names = c("this", "that", "phat"),
row.names = c("a", "b", "c", "d", "e", "f", "g", "h", "i"),
class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
使用som属性数据:
att <-structure(list(sex = structure(c(1L, 1L, 2L, 2L, 1L, 2L, 1L,
1L, 1L), .Label = c("F", …Run Code Online (Sandbox Code Playgroud) 我是.net程序员,但对mvc来说是新手.
我创建了一个新的mvc页面,上面有一个简单的表单 - 2个文本框和一个提交按钮.发布后,它转到我的服务器端方法,其中用户信息输入到数据库中,然后我想将用户返回到相同的确切形式但再次清空.
当我使用"返回视图("索引",新的myIndexObject());" 它将用户返回到与表单相同的页面,但是已经填写的信息就好像控件上有ViewState一样.我怎么摆脱这个?
非常感谢所有美丽的答案!不能只标记一个是正确的
注意:已经是wiki
我是函数式编程的新手,虽然我可以在函数式编程中读取简单的函数,例如计算数字的阶乘,但我发现很难阅读大函数.部分原因是因为我无法在函数定义中找出较小的代码块,部分原因是因为我( )在代码中难以匹配.
如果有人能够引导我阅读一些代码并给我一些关于如何快速破译某些代码的提示,那将是很棒的.
注意:如果我盯着它看了10分钟,我就能理解这段代码,但我怀疑这段代码是用Java编写的,我需要10分钟.因此,我认为在Lisp样式代码中感觉舒服,我必须更快地完成它
注意:我知道这是一个主观问题.我并不是在寻求任何可证实的正确答案.只是评论你如何阅读这些代码,欢迎并非常有帮助
(defn concat
([] (lazy-seq nil))
([x] (lazy-seq x))
([x y]
(lazy-seq
(let [s (seq x)]
(if s
(if (chunked-seq? s)
(chunk-cons (chunk-first s) (concat (chunk-rest s) y))
(cons (first s) (concat (rest s) y)))
y))))
([x y & zs]
(let [cat (fn cat [xys zs]
(lazy-seq
(let [xys (seq xys)]
(if xys
(if (chunked-seq? xys)
(chunk-cons (chunk-first xys)
(cat (chunk-rest xys) zs))
(cons (first xys) (cat (rest xys) zs)))
(when zs …Run Code Online (Sandbox Code Playgroud) 在这里,我提供简单的代码.
function GetStringList:TStringList;
var i:integer;
begin
Result:=TStringList.Create;
Result.Add('Adam');
Result.Add('Eva');
Result.Add('Kain');
Result.Add('Abel');
end;
procedure ProvideStringList(SL:TStringList);
var i:integer;
Names:TStringList;
begin
Names:=TStringList.Create;
Names.Add('Adam');
Names.Add('Eva');
Names.Add('Kain');
Names.Add('Abel');
SL.Assign(Names);
Names.Free;
end;
procedure TForm1.btn1Click(Sender: TObject);
var SL:TStringList;
i:integer;
begin
SL:=TStringList.Create;
SL.Assign(GetStringList);
for i:=0 to 3 do ShowMessage(SL[i]);
SL.Free;
end;
procedure TForm1.btn2Click(Sender: TObject);
var SL:TStringList;
i:integer;
begin
SL:=TStringList.Create;
ProvideStringList(SL);
for i:=0 to 3 do ShowMessage(SL[i]);
SL.Free;
end;
Run Code Online (Sandbox Code Playgroud)
现在的问题是:函数GetStringList中的结果对象会发生什么:Tstringlist,它被创建,但从未被释放?(我调用2次Create并且只有1次Free)是按照函数提供对象的内存安全吗?还是我应该使用过程来执行此任务,其中只是处理对象创建和销毁(过程ProvideStringlist)?我叫2次创建和2次免费.还是有其他解决方案吗?
Thanx提前
Lyborko
我似乎无法在任何地方找到这个看似简单的问题的答案:一旦"释放"它,你如何获得代码库的干净副本?例如,假设我在我的Git存储库中的某个位置,我想要发布一个副本.如何在没有Gitiness的情况下复制它?我不想要任何隐藏的Git目录等.我想要一个干净的可交付产品.想法?我正在和RoR一起工作,顺便说一下.
最好
我有一个拖动脚本,我正在拖动div.slider,我正在跟踪div.slider的"左"值,并在它大于68时淡出,但问题是它在淡出时它变为6,而不是68.如果我将数字更改为85,那么它将在8时淡出,而不是85.有人知道为什么会发生这种情况吗?
$(document).ready(function() {
$(".slider").mousemove(function() {
var rightStyleValue = $('div.slider').css('left');
$('.display_value').html(rightStyleValue);
if ($('.slider').css('left') > 68 + 'px') {
$('.container').fadeOut(500);
}
});
});
Run Code Online (Sandbox Code Playgroud) 您好我正在我的Windows Box上组装一个工具链,用于跨平台C++开发.我计划使用Boost.Build进行构建,使用Boost :: Test进行单元测试.我将使用Mercurial作为我的VCS,因为我可以将repo放在我的外部HD上,然后将其拉到我的windows或linux分区.阻碍我的主要方法是编辑器编译器/调试器.有人有什么建议吗?
使用Boost.Build,我可以在技术上使用它支持的任何编译器轻松构建.这意味着Windows上的MSVC和Linux上的GCC使用带有标志的相同脚本.
我知道有一些像:
还有一些不切实际的:
上面的一些使用比较而其他人没有.
您知道存在哪些其他有效算法或技术来排序数字吗?你可以建议我即使它不适用于现实生活中,或者它是不切实际但它必须是有效的,但如果它是一个计算解决方案会更好.