I must admit I have a hidden agenda which is that these would be very useful 
for CSS. Especially if there was a deriveFont(FontPosture) and 
deriveFont(FontWeight). 


On Jun 3, 2013, at 2:40 PM, Richard Bair <richard.b...@oracle.com> wrote:

> I agree these would be useful. The reason I filed this particular issue is 
> that whenever I'm writing some code it seems like I'm always reaching for 
> Font.font(size) and when I don't find it there I have to figure out what to 
> pass as the family (it turns out I could have passed null but didn't know it, 
> so I had the longer incantation). Having to always derive is also just an 
> extra level of oomph that in many cases I don't really want to do.
> 
> Unless Font.font(size) is one day going to be "the wrong thing" and by baking 
> it in I'm creating a new error mode, I'd just add it as it will add no weight 
> and would at least be there when I reach for it. As long as one day it won't 
> be "the wrong thing"…
> 
> Anyway, if it is going to take more than a few minutes to figure out, best to 
> punt on this rather than soak up Felipe's precious time.
> 
> Richard
> 
> On Jun 3, 2013, at 11:26 AM, David Grieve <david.gri...@oracle.com> wrote:
> 
>> I would rather see the deriveFont methods, but not as factory methods.
>> 
>> public Font deriveFont(double size)
>> public Font deriveFont(String family)
>> 
>> The subtle difference being that these wouldn't use "default" sizes or 
>> family names but would use whatever the font is to find the closest matching 
>> font. If there isn't a close match, then the same font would be returned. 
>> 
>> e.g., 
>>   text.setFont(Font.getDefault().deriveFont(18));
>> and 
>>   Font myFont = new Font("Verdana", 18);
>>   text.setFont(myFont.deriveFont("Comic Sans MS");
>> 
>> On Jun 3, 2013, at 2:07 PM, Felipe Heidrich <felipe.heidr...@oracle.com> 
>> wrote:
>> 
>>> Moving API discussion to the mailing:
>>> 
>>> Proposal:
>>> Add:
>>> Font#font(float)            - creates new font using default font family 
>>> name and given font size
>>> Font#font(String)           - creates new font using given font family and 
>>> default font size
>>> 
>>> 
>>> Comments:
>>> Phil Wrote
>>>> I keep having to type this:
>>>> text.setFont(Font.font(Font.getDefault().getFamily(), 81));
>>>> I would prefer just:
>>>> text.setFont(Font.font(81));
>>>> which would use the default font.
>>> 
>>> I think that last line was meant to be "default font family".
>>> All the font(..) factory methods are family based and we should
>>> keep it that way.
>>> So the new API Font.font(-81) as specified and implemented here
>>> is using the default family but its not necessarily getting the same
>>> style as the default font. Nor would it inherit any other (theoretical)
>>> attributes of the default font. In practice it'll all work out
>>> the same until the day that some platform has a bold default font
>>> or has something else different about the default font that can't
>>> be communicated solely through family.
>>> So some day we also need to add Font.deriveFont(..).
>>> 
>>> Felipe wrote:
>>> Right, the problem you pointed out would be better solved using the derive 
>>> pattern:
>>> 
>>> Font.getDefault().deriveFont(newSize);
>>> 
>>> That said, the two new methods don't exclude the option of adding derive in 
>>> the future.
>>> They are consistent with the javadoc, other factory methods, and probably 
>>> good enough to make Richard happy for now.
>>> 
>>> Anyway, I will let him be the judge for that. 
>>> 
>>> Personally I would go with the 2 new methods for now and worried about 
>>> derive in the future (at which time we can consider the implication of 
>>> different style options such as stretch and advance typographic features).
>>> 
>>> 
>>> 
>>> Felipe
>>> 
>> 
> 

Reply via email to